如何解析python中一节内的包含列表的json文件?

时间:2017-07-11 13:39:08

标签: python json

我有一个smaple.json如下:

{"Detail":[
    {
    "DocType":"txt",
    "Name":"hello.txt",
    }
    ]}

我需要将值设置为“名称”字段。我在我的剧本中尝试如下:

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']

我输出为:

  {"DocType":"txt","Name":"hello.txt"} 
  error:print (ana['Name'])
  TypeError: string indices must be integers

那么我做错了怎样才能获得“名称”字段的详细信息。

4 个答案:

答案 0 :(得分:2)

您可以使用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'] 库:

new

答案 1 :(得分:0)

错误出现在此行print val['Name']。由于valstr类型,因此您无法在密钥基础上进行查找。

你应该做

ana[0]['Name']
>>> 'hello.txt'

答案 2 :(得分:0)

使用json库。

import json

with open('sample.json', 'r') as f:
    content = json.load(f)

name = content['Detail'][0]['Name']

答案 3 :(得分:0)

请参阅json库[https://docs.python.org/2/library/json.html]

上的以下链接
  1. 打开json文件
  2. 使用json.loads()解码数据。
  3. 使用标题
  4. 访问它

    /代码

    >>> 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'
    >>>