【发布时间】:2017-05-23 01:44:48
【问题描述】:
我无法解析生成的 json 数据以仅返回想要的部分(例如,'name、'aisle'、'status')。如何修改输出以仅打印这些项目?
代码:
for coro in tqdm(asyncio.as_completed(tasks, loop=loop)):
try:
response = await coro
if response is None:
continue
data, store = response
result = json.loads(data['searchResults'])['results'][0]
summary = {
'name': result['name'],
'aisle': result['price']['aisle'][0],
'status': result['inventory']['status'],
}
results[store] = summary
except (IndexError, KeyError):
continue
with open('Testing.txt', 'w') as outfile:
json.dump(results, outfile, indent = 2)
outfile.write('\n')
当我打印时,我得到以下格式:
{
"1": {
"name": "camera",
"aisle": "M.3",
"status": "In Stock"
},
"2": {
"name": "camera",
"aisle": "M.53",
"status": "Out of Stock"
},
"3":{
"name": "camera",
"aisle": "M.32",
"status": "In Stock"
}
}
我想将每个循环的输出放在一行中,例如:
'35': { 'name': 'Camera', 'aisle': 'M.35', 'status': 'Out of stock' },
'36': { 'name': 'Camera', 'aisle': 'J.35', 'status': 'In stock' }
【问题讨论】:
-
您是否阅读过
json文档?他们解释了如何将 JSON 数据转换为 Python dicts,然后您只需要访问适当的 dict 元素并根据需要打印它们。 -
在这种情况下,您最好不要使用 json,只需加入项目并将它们写入文本文件。
-
谢谢 - 我更新了上面的帖子,但收到以下错误:NameError: name 'data' is not defined
标签: python arrays json python-3.x