Python/json.load给出了异常
我有以下几行:Python/json.load给出了异常,python,json,Python,Json,我有以下几行: BL: {version: 2, revision: 1} 我想解析它,这样我就可以得到一个变量BL,另一个变量就是 [[version, revision], [2,1]] 我有以下代码: for line in file: print line.split(':',1)[0]; gives me the first word (BL) print line.split(': ',1)[1] data = json.loads
BL: {version: 2, revision: 1}
我想解析它,这样我就可以得到一个变量BL
,另一个变量就是
[[version, revision], [2,1]]
我有以下代码:
for line in file:
print line.split(':',1)[0]; gives me the first word (BL)
print line.split(': ',1)[1]
data = json.loads(json.dumps(line.split(': ',1)[1]));
问题是数据不是作为变量包含在数据中的,所以当我执行数据[0]
时,我会得到字符:{
正确的方法是什么?您的JSON无效,因为它的键无效(您可能需要字符串) 要想绕过它,你可以做一些骇客的事情,比如:
# give value to non-string keys, to use in eval
version = "version"
revision = "revision"
d = eval(line.split(": ", 1)[1])
print [d.keys(), d.values()]
这要求您提前知道所有钥匙
我建议您改为修复输入生成脚本
我总是避免。您试图将字符串转储到JSON。这不会得到您想要的结果。您也不能使用
JSON.loads()
,因为拆分字符串后仍然是无效的JSON。您可以在根本不使用Python解释器的情况下测试这是否是有效的JSON。例如,您将看到jq。