如何使用python从Json列表中获取数据?
我是python新手,曾尝试从python json文档中获取数据,我尝试将信息传递给python,并从python中获取json打印一个带有表样式的pdf。 我的json代码是如何使用python从Json列表中获取数据?,python,json,Python,Json,我是python新手,曾尝试从python json文档中获取数据,我尝试将信息传递给python,并从python中获取json打印一个带有表样式的pdf。 我的json代码是 [ { "files": 0, "data": [ {"name": "RFC", "value": "XXXXXXX", "attId": 01}, {"name": "NOMBRE", "value": "JOSE", "a
[
{
"files": 0,
"data": [
{"name": "RFC", "value": "XXXXXXX", "attId": 01},
{"name": "NOMBRE", "value": "JOSE", "attId": 02},
{"name": "APELLIDO PATERNO", "value": "MONTIEL", "attId": 03},
{"name": "APELLIDO MATERNO", "value": "MENDOZA", "attId": 04},
{"name": "FECHA NACIMIENTO", "value": "1989-02-04", "attId": 05}
],
"dirId": 1,
"docId": 4,
"structure": {
"name": "personales",
"folioId": 22
}
},
{
"files": 0,
"data": [
{"name": "CALLE", "value": "AMOR", "attId": 06},
{"name": "No. EXTERIOR", "value": "4", "attId": 07},
{"name": "No. INTERIOR", "value": "2", "attId": 08},
{"name": "C.P.", "value": "55060", "attId": 09},
{"name": "ENTIDAD", "value": "ESTADO DE MEXICO", "attId": 10},
{"name": "MUNICIPIO", "value": "ECATEPEC", "attId": 11},
{"name": "COLONIA", "value": "INDUSTRIAL", "attId": 12}
],
"dirId": 1,
"docId": 4,
"structure": {
"name": "direccion",
"folioId": 22
}
}
]
在python中,我将介绍下一个代码
import json
f= open(prueba.json)
prueba = json.load(f)
prueba
正确打印json的内容,但我的想法是仅获取示例:
Nombre,Jose
然后使用参数以pdf格式构建表
我试过以下方法
import json
json_data = []
with open('prueba.json') as json_file:
json_data = json.load(json_file)
for key, value in json_data.iteritems():
print key;
for item in value:
print item
for key, value in json_data.iteritems():
print key;
for item in value:
print item
但我有下一个错误:
AttributeError : 'list' object has no attribute 'iteritems'
我正试图为他们做点什么,但我必须获得json的每个数据
json_data = [] # your list with json objects (dicts)
for item in json_data:
for data_item in item['data']:
print data_item['name'], data_item['value']
for key, value in json_data.iteritems():
print key
if isinstance(value, (list, tuple)):
for item in value:
print item
if isinstance(value, (dict)):
for value_key,value_value in value.iteritems():
print value_key,str(value_value)
可以改进以管理更多类型,并且可以使其递归。“仅获取示例”。请更详细地描述要从JSON文件中提取哪些数据,以及如何输出这些数据。请回答您的问题,并提供一个小样本,说明输出应该是什么样子。什么是
json_数据
?这是因为json_数据
是一个列表,而不是一个字典。您的json代码无效。当我尝试json.load(json_文件)
时,我得到一个ValueError:Expecting,delimiter:line 5 column 59(char 104)
。json代码的问题是整数不能有前导零-就像示例中的“attId”
一样-请参阅json.org的语法图。我有de next error Traceback(最后一次调用):文件“prueba.py”,第5行,json_data=json.load(json_文件)文件“C:\Python27\lib\json_init_.py”,第290行,加载**kw)文件“C:\Python27\lib\json_init_.py”,第338行,加载返回默认_解码器。解码文件“C:\Python27\errlib\json\decoder.py”,第368行,解码提升值错误(msg)(“额外数据”,s,end,len(s)))value错误:额外数据:第53行第1列-第53行第2列(char 1736-1737)您是否按照帖子中所示加载json文件?如果是,您可以提供json文件吗?您可以发布其内容(或部分内容)例如,对于Pastebin,再考虑一下,您的json是无效的。您的值是06
而不是6
。您必须首先解决这个问题。您可以使用Yes验证json,因为数字中的前导零无效。如果数字以0开头,它将被解释为,或以8为基数。八进制仅使用数字from 0到7。因此,它在08
和09
时失败。但我们如何修复它?…另一个问题我与reportlab合作过,但我不知道,因为我可以在表(PDF)中加载此信息。我得到了相同的错误属性错误:“列表”对象没有属性“iteritems”