[英]How to extract data from the JSON file with multiple values
我有一個 JSON 數據文件,我能夠從中解析數據。 但是,當我嘗試如下解析主題部分時,我得到了多個用逗號分隔的條目。 有人可以幫我弄這個嗎? 我是 Python 的新用戶。
import json
data = json.loads(data)
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
print(item['Topics'])
Output:
{'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'])
Output:
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 等,它也會找到它們.
您需要再次迭代item['Topics']
以獲得嵌套級別的字典值,以便從您的輸入中獲得類似的結果。
你可以嘗試這樣的事情:
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
for topic, topic_value in item['Topics'].items():
print(topic_value['Value'])
for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
res = ''
for topic, topic_value in item['Topics'].items():
res = res + ', ' + topic_value['Value']
res = res[2:] # To remove unwanted ', ' at index 0,1
print(res)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.