首页 > 解决方案 > 如何只打印 JSON 对象的一部分数据?

问题描述

我调用一个 API,我得到如下数据:

{"states": [{"state_id": 1, "state_name": "Andaman and Nicobar Islands"},
            {"state_id": 2, "state_name": "Andhra Pradesh"},
            {"state_id": 3, "state_name": "Arunachal Pradesh"},
            {"state_id": 4, "state_name": "Assam"}], "ttl": 24}

我只想要州名,所以我喜欢这样:

certificate = requests.get("https://cdn-api.co-vin.in/api/v2/admin/location/states")
datafrom = certificate.json()
print(datafrom["state_name"])

但它会显示一个错误

KeyError: 'state_name

如何仅在python中打印州名?

标签: pythonjson

解决方案


因为您获取的数据具有以下格式:stringKey: listValue,并且在列表中,您有每个字典,因此您需要访问值列表中字典的键。

>>> [d['state_name'] for d in datafrom['states']]
['Andaman and Nicobar Islands', 'Andhra Pradesh', 'Arunachal Pradesh', 'Assam']

推荐阅读