Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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字符串转换为字典_Python - Fatal编程技术网

在(Python)中将JSON字符串转换为字典

在(Python)中将JSON字符串转换为字典,python,Python,我有一个json文件 json_数据={ “操作”:“postRecord”, “数据”:{ “数据”:[ { “信息”:{ “lid”:999, “cid”:1234 }, “信息”:{ “lid”:111, “cid”:“6789” } } ] } } 我尝试使用json.load output=json.load(json_数据) 但是它返回了一个字符串 我想以类似于输出['data']['data']['info']['id']的方式访问id的值。您的意思是在JSON\u data变量

我有一个json文件

json_数据={ “操作”:“postRecord”, “数据”:{ “数据”:[ { “信息”:{ “lid”:999, “cid”:1234 }, “信息”:{ “lid”:111, “cid”:“6789” } } ] } }

我尝试使用json.load

output=json.load(json_数据) 但是它返回了一个字符串
我想以类似于输出['data']['data']['info']['id']的方式访问id的值。您的意思是在
JSON\u data
变量中有一个作为纯文本的JSON数组

您应该将JSON数据作为字符串放入变量
JSON\u data
,并使用
JSON.loads(JSON\u data)

由于JSON只是文本,所以应该将其视为字符串,除非已从磁盘打开JSON文件,否则
JSON.load()

In [5]: json_data = '{ "action":"postRecord", "data":{ "data":[ { "info":{ "lid":999, "cid":1234 }, "info":{ "lid":111, "cid":"6789" } } ] } }'

In [6]: output = json.loads(json_data)

In [7]: output['data']['data'][0]['info']['cid']
Out[7]: u'6789'

你的数据不是已经是你想要的格式了吗

print json_data['data']['data'][0]['info']['cid']

原始json字符串似乎有问题,一个元素中有重复的info属性,因此在json.dump to format之后,第一个信息将被删除,结果是第二个6789

json_data = { "action":"postRecord", "data":{ "data":[ { "info":{ "lid":999, "cid":1234 }, "info":{ "lid":111, "cid":"6789" } } ] } }
data = json.dumps(json_data)
json_to_python = json.loads(data)
print (json_to_python)
print (json_to_python['data']['data'][0]['info']['cid'])

======>
{'action': 'postRecord', 'data': {'data': [{'info1': {'lid': 999, 'cid': 1234}, 'info': {'lid': 111, 'cid': '6789'}}]}}
6789

json.load(json_数据)
甚至不会运行json文件的内容吗?如果是这样,则它不是有效的json。还是希望json_数据是一个有效json的字符串?然后您需要它是字符串(
'{“action”:“postRecord”[..]}'
,注意外部的
'
)。