Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/json.load给出了异常_Python_Json - Fatal编程技术网

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。