我使用Python 3.4并且必须像这样解析JSON
[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]
我尝试使用json模块,json.loads函数将其解析为python对象,但是我得到了
ValueError: Expecting value: line 1 column 3 (char 2)
那么,我该怎么做才能解析这个JSON?
答案 0 :(得分:5)
JSON中的字符串需要双引号,而不是单引号。
将输入更改为使用Python 2.7解析:
[["A", "B", 1.3750], ["X", "Y", 0.7097]]
编辑:在看到您的评论后,您需要对从Web API接收的数据进行一些字符串操作(例如,用双引号替换所有单引号)使其成为有效的JSON。
答案 1 :(得分:0)
它是无效的json但有效的文字python你可以使用ast.literal_eval解析它
import ast
ast.literal_eval("[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]")
答案 2 :(得分:0)
您有两个主要问题:
如果您真的想将其解析为JSON,则必须先进行一些清理。例如:
import json
json_input = "[['A', 'B', 1.3750], ['X', 'Y', 0.7097]]"
print json.loads('{"value": %s}' % json_input.replace("'", '"') )['value']
这个问题是它非常脆弱,因为源可能发送类似"'"
的东西,它会转换为'''
,这会导致问题。如果你在尝试解决这个问题的路上走得太远,你基本上就是在编写解析器了。