[英]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.