注意:
请参阅下面的编辑。除了在无法处理JSON数据格式的程序中使用模块的副作用外,这一点都没有。
我有一个JSON Feed,来自Instagram,它使用了许多#
个符号。在大多数情况下,它已经解析了数据,但在一种情况下,我收到了一个看起来像这样的键值对:
"type": "image",
"title": "artistsonthelam",
"text": ""
My# heart Is With You Always.
" #laser #installation by #traceyemin# abhk2014",
您可以在text
字段中查看该问题。由于某种原因#
后面跟text
键中的空格(我认为),导致了问题。它逃脱了文本。
或者,这个人在text
字段中使用了引号,并没有关闭它们,这也逃脱了文本?
我得到的错误是ValueError: Expecting ',' delimiter: line 464 column 9 (char 18272)
有人能告诉我问题是什么或更好,如何通过解析文本字段或用引号修复问题来解决问题?谢谢
修改 我不是通过Python检索这些数据,而是通过另一个程序中的模块检索这些数据,这些模块发出的HTTP请求无法正确处理JSON。它进行了检索,然后我尝试在Python中解析生成的字符串。问题是该模块没有获取有效的JSON,因此我无法正确解析它。感谢您的帮助,并对此感到抱歉。
答案 0 :(得分:1)
您可以尝试为try
执行except
/ ValueError
,然后对其进行替换......
try:
# read the json
except ValueError:
if ... : # Somehow check if the json is actually screwed
re.sub(r'\"([^"]+)\"', "'\1'", json)
我认为如果Json键/值对包裹在'或'中没关系,对吗?