[英]how do you extract from the json output using python
我有一個來自 http 的 json output 請求,如下所示:
print(resp)
{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-12345', 'displayName': 'beff'}]}
{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-7898', 'displayName': 'dude101'}]}
{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-56890', 'displayName': 'prop'}]}
我需要從這個列表中獲取 entityId:
HOST-12345
HOST-7898
HOST-56890
我有這個:
print(resp['entities']['entityId'])
我收到此錯誤:
TypeError: list indices must be integers or slices, not str
索引始終是數字,因此要訪問第 1 行,您必須編寫 resp[0],現在使用點 (.) 您可以訪問內部字段。 print(resp[0]['entities'][0]['entityId'])
實際上,您當前的響應不是 JSON 格式,如果是這樣,您需要先用"\n"
將其拆分以將每一行作為列表項。 然后您需要將'
轉換為"
。現在您可以使用json.loads
對其進行解碼以獲取字典 object 並從中獲取信息:
import json
txt = """{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-12345', 'displayName': 'beff'}]}
{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-7898', 'displayName': 'dude101'}]}
{'totalCount': 1, 'pageSize': 50, 'entities': [{'entityId': 'HOST-56890', 'displayName': 'prop'}]}"""
for line in txt.split('\n'):
correct_json_format = line.replace("'", '"')
d = json.loads(correct_json_format)
print(d['entities'][0]['entityId'])
output:
HOST-12345
HOST-7898
HOST-56890
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.