【发布时间】:2013-09-02 02:54:09
【问题描述】:
从 2gis API 我得到以下 JSON 字符串。
{
"api_version": "1.3",
"response_code": "200",
"id": "3237490513229753",
"lon": "38.969916127827",
"lat": "45.069889625267",
"page_url": null,
"name": "ATB",
"firm_group": {
"id": "3237499103085728",
"count": "1"
},
"city_name": "Krasnodar",
"city_id": "3237585002430511",
"address": "Turgeneva, 172/1",
"create_time": "2008-07-22 10:02:04 07",
"modification_time": "2013-08-09 20:04:36 07",
"see_also": [
{
"id": "3237491513434577",
"lon": 38.973110606808,
"lat": 45.029031222211,
"name": "Advance",
"hash": "5698hn745A8IJ1H86177uvgn94521J3464he26763737242Cf6e654G62J0I7878e",
"ads": {
"sponsored_article": {
"title": "Center "ADVANCE"",
"text": "Business.English."
},
"warning": null
}
}
]
}
但 Python 无法识别:
json.loads(firm_str)
期望,分隔符:第 1 行第 3646 列(字符 3645)
这看起来像是一个问题的引号: "title": "中心 "ADVANCE""
如何在 Python 中自动修复它?
【问题讨论】:
-
这是编码问题,不是 JSON 问题。
-
编码正确。不要注意奇怪的字符
-
你能把它隔离成一个具体的小例子吗?移除碎片,直到剩下断裂的部分。
-
我认为问题在于用双引号分隔的字符串中有双引号。请改用
"title": "bla 'ADVANCE'"或"title": 'bla "ADVANCE"'。应该可以构建一个正则表达式来找到那些...... -
考虑如果更高版本的 API 修复了这个错误会发生什么。确保当他们修复他们的代码时,您使用的任何解决方法都不会导致您的代码出现新错误。