python - 如何从具有多个值的 JSON 文件中提取数据
问题描述
我有一个 JSON 数据文件,我能够从中解析数据。但是,当我尝试如下解析主题部分时,我得到了多个以逗号分隔的条目。有人可以帮我弄这个吗?我是 Python 新手。
import json
data = json.loads(data)
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
print(item['Topics'])
输出:
{'Topic1': {'Code': '201', 'Value': 'Products'}}
{'Topic1': {'Code': '207', 'Value': 'Mergers / Acquisitions'}}
{'Topic1': {'Code': '210', 'Value': 'Officer Changes'}}
{'Topic1': {'Code': '252', 'Value': 'Other Pre-Announcement'}}
{'Topic1': {'Code': '245', 'Value': 'Earnings Announcements'}}
{'Topic1': {'Code': '245', 'Value': 'Earnings Announcements'}}
{'Topic1': {'Code': '252', 'Value': 'Other Pre-Announcement'}}
{'Topic1': {'Code': '253', 'Value': 'Strategic Combinations'}}
{'Topic1': {'Code': '213', 'Value': 'Divestitures / Spin-offs'}, 'Topic2': {'Code': '264', 'Value': 'Product Responsibility'}}
{'Topic1': {'Code': '265', 'Value': 'Community'}}
当我运行以下脚本时,它给了我:
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
print(item['Topics']['Topic1']['Value'])
输出:
Products
Mergers / Acquisitions
Officer Changes
Other Pre-Announcement
Earnings Announcements
Earnings Announcements
Other Pre-Announcement
Strategic Combinations
Divestitures / Spin-offs
Community
相反,我希望结果是这样的。
Products
Mergers / Acquisitions
Officer Changes
Other Pre-Announcement
Earnings Announcements
Earnings Announcements
Other Pre-Announcement
Strategic Combinations
Divestitures / Spin-offs,Product Responsibility
Community
有人可以帮我吗?
解决方案
因此,在您的示例中, topic1 和 topic2 都是字典中的键。如果你想要这两个值,你可以这样做......
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
for entry in item['Topics'].keys():
print(item[entry]['Value'])
这段代码背后的想法是嵌套第二个循环并使用这些keys()
方法在结构的该级别获取字典中的键列表,这样如果有 top3、topic4 等,它也会找到它们。
推荐阅读
- javascript - React 中的异步操作是否应该依赖于重新渲染?
- ios - MTKView currentRenderPassDescriptor 清除颜色
- electron - 如何从 extraResources 中读取文件?
- javascript - 如何让 html 画布对象相互跟随/调整大小?
- php - 循环文件数组未上传所有文件
- sql - 将列分组为一行,忽略 postgreSQL 中的空值
- javascript - Mako 模板中的 JavaScript 模板文字
- java - 我可以强制我的数据流管道中的一个步骤是单线程的(并且在单台机器上)吗?
- jquery - 检查attr target=“blank” 的元素,如果是,则通过 JavaScript 打开新窗口
- node.js - NodeJs express4-tedious - SELECT 以 JSON 形式返回响应的存储过程