繁体   English   中英

使用python从JSON文件读取数组

[英]Using python to read an array from a JSON file

我有这个JSON文件:

[
{
id: "29",
name: "abc",
email: "def@school.edu",
data: "2016-05-03"
},
{
id: "17",
name: "ghi",
email: "jkl@school.edu",
data: "2016-05-12"
},
{
id: "12",
name: "qwe",
email: "cde@school.edu",
data: "2016-04-11"
}
]

我写了这个脚本:

with open('C:/Users/L30607/Desktop/FYP/FourthMay-AllStudents-stackoverflow.json') as json_data:
    d = json.load(json_data)
    json_data.close()
    pprint(d)

如何解析文件并提取数组?

我想得到:

d = [{id: "29",name: "abc",email: "def@school.edu",data: "2016-05-03"},{id: "17",name: "ghi",email: "jkl@school.edu",data: "2016-05-12"},{id: "12",name: "qwe",email: "cde@school.edu",data: "2016-04-11"}]

您的JSON格式不正确。 我将经过验证的内容放在https://jsonformatter.curiousconcept.com/中 ,它表明您的密钥没有用引号引起来。 这是应该的:

[  
   {  
      "id":"29",
      "name":"abc",
      "email":"def@school.edu",
      "data":"2016-05-03"
   },
   {  
      "id":"17",
      "name":"ghi",
      "email":"jkl@school.edu",
      "data":"2016-05-12"
   },
   {  
      "id":"12",
      "name":"qwe",
      "email":"cde@school.edu",
      "data":"2016-04-11"
   }
]

我重新运行了您的代码,它运行良好。

这是错误:

追溯(最近一次通话):文件“ C:/Users/L30607/PycharmProjects/untitled1/333.py”,第36行,位于d = json.load(json_data)文件“ C:\\ Python27 \\ lib \\ json__init __。py ”,行291,在加载** kw中)文件“ C:\\ Python27 \\ lib \\ json__init __。py”,行339,在加载中返回_default_decoder.decode文件“ C:\\ Python27 \\ lib \\ json \\ decoder”。 py”,第364行,在解码obj中,end = self.raw_decode(s,idx = _w(s,0).end())文件“ C:\\ Python27 \\ lib \\ json \\ decoder.py”,第380行,在raw_decode obj中,end = self.scan_once(s,idx)ValueError:期望的属性名称:第3行第1列(字符4)

如果遇到任何错误,请始终从http://jsonlint.com/验证您的json。 在您的情况下,您不能将Keys作为字符串提供。

您的json应该像:

[{
    "id": "29",
    "name": "abc",
    "email": "def@school.edu",
    "data": "2016-05-03"
}, {
    "id": "17",
    "name": "ghi",
    "email": "jkl@school.edu",
    "data": "2016-05-12"
}, {
    "id": "12",
    "name": "qwe",
    "email": "cde@school.edu",
    "data": "2016-04-11"
}]

字符串应在引号内。 然后只有它成为有效的JSON。 您可以验证JSON: 验证JSON

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM