如何通过 PYTHON 对 SQL INSERT FROM OPENJSON 的 JSON 响应转义字符
How to escape characters in JSON response for SQL INSERT FROM OPENJSON via PYTHON
由于值 (') 中的撇号,向 SQL 服务器数据库发送 API JSON 响应时出错。查看 operator_country_lar
的第二个 JSON 回复
这是一个示例 API 响应:
json_response= '{
"num_results": 455161,
"results": [
{
"activity_date": "1975-12-01",
"activity_id": "50",
"activity_name": "ORDERED",
"operator_country_lar": "France",
"registered_owner_name": "AIR FRANCE"
},
{
"activity_date": "1974-10-01",
"activity_id": "50",
"activity_name": "ORDERED",
"operator_country_lar": "Korea, Democratic People's Republic of",
"registered_owner_name": "KOREAN AIR LINES"
}
],
"results_this_page": 2,
"status": 200}'
序列化响应并执行:
query = "DECLARE @json nvarchar(max)= "+json_response+" INSERT INTO "+self.database+"([activity_date],[activity_name],[operator_name])
SELECT * FROM OPENJSON(@json, '$.results') WITH (activity_date date, activity_name nchar(25), operator_name nchar(256))"
cursor.execute(query)
cnxn.commit()
第一个实例工作正常,但响应中的第二个实例抛出错误。如何转义撇号或是否有更准确的方法在 PYTHON?
中编写 SQL OPENJSON 语句
此搜索和替换有效。它可能并不完美,但处理速度相对较快 json。希望它能帮助别人。
self.response = json.loads(json.dumps(self.response.json()).replace("'", ""))
如果您找到更好的解决方案,请在下方分享。
由于值 (') 中的撇号,向 SQL 服务器数据库发送 API JSON 响应时出错。查看 operator_country_lar
的第二个 JSON 回复这是一个示例 API 响应:
json_response= '{
"num_results": 455161,
"results": [
{
"activity_date": "1975-12-01",
"activity_id": "50",
"activity_name": "ORDERED",
"operator_country_lar": "France",
"registered_owner_name": "AIR FRANCE"
},
{
"activity_date": "1974-10-01",
"activity_id": "50",
"activity_name": "ORDERED",
"operator_country_lar": "Korea, Democratic People's Republic of",
"registered_owner_name": "KOREAN AIR LINES"
}
],
"results_this_page": 2,
"status": 200}'
序列化响应并执行:
query = "DECLARE @json nvarchar(max)= "+json_response+" INSERT INTO "+self.database+"([activity_date],[activity_name],[operator_name])
SELECT * FROM OPENJSON(@json, '$.results') WITH (activity_date date, activity_name nchar(25), operator_name nchar(256))"
cursor.execute(query)
cnxn.commit()
第一个实例工作正常,但响应中的第二个实例抛出错误。如何转义撇号或是否有更准确的方法在 PYTHON?
中编写 SQL OPENJSON 语句此搜索和替换有效。它可能并不完美,但处理速度相对较快 json。希望它能帮助别人。
self.response = json.loads(json.dumps(self.response.json()).replace("'", ""))
如果您找到更好的解决方案,请在下方分享。