[英]How to parse json file containing list inside a section in python?
I have a smaple.json as follows: 我有一个smaple.json,如下所示:
{"Detail":[
{
"DocType":"txt",
"Name":"hello.txt",
}
]}
I need to have the value aginst the "Name" Field. 我需要在“名称”字段中输入值。 i tried in my script as follows:
我在脚本中尝试如下:
file="c:/sample.json"
for list in file:
if (str(list['Detail'])=='None'):
print("Do nothing")
else:
ana = list['Detail']
val = (str(ana)[1:-1])
print val
print val['Name']
and i get output as : 我得到的输出为:
{"DocType":"txt","Name":"hello.txt"}
error:print (ana['Name'])
TypeError: string indices must be integers
So what am i doing wrong how shall i get the "Name" field details. 因此,我在做错什么我该如何获取“名称”字段详细信息。
You could use the json
library: 您可以使用
json
库:
import json
json_path = "c:\\sample.json"
with open(json_path) as json_file:
json_dict = json.load(json_file)
name = json_dict['Detail'][0]['Name']
error is at this line print val['Name']
. 错误是这一行
print val['Name']
。 Because val
is str
type so you can't lookup on key basis. 因为
val
是str
类型,所以您不能基于键进行查找。
You should do 你应该做
ana[0]['Name']
>>> 'hello.txt'
Please see the below link on json library [ https://docs.python.org/2/library/json.html] 请在json库上查看以下链接[ https://docs.python.org/2/library/json.html]
/code /码
>>> import json
>>> with open('test.json','r') as e:
... data = json.loads(e.read())
...
>>> data
{u'Detail': [{u'DocType': u'txt', u'Name': u'hello.txt'}]}
>>> data['Detail'][0]['Name']
u'hello.txt'
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.