簡體   English   中英

如何以可迭代的方式使用 Python 映射 JSON 值

[英]How to map JSON values using Python in an iterable fashion

我有一個從文件加載的 JSON 對象,如下所示。 我想解析所有 CityName 值的 JSON 對象。

{
    "CityList": [
        {
            "Continent": "USA", 
            "CityName": "Chicago"
        }, 
        {
            "Continent": "Russia", 
            "CityName": "Moscow"
        }, 
        {
            "Continent": "Asia", 
            "CityName": "Beijing"
        }, 
        {
            "Continent": "Australia", 
            "CityName": "Sydney"
        }
    ]
} 

我正在使用 Python 腳本通過 FOR 循環從 JSON 中提取 CityName 元素。 由於其他一些原因,我想在下游使用“name”變量。

 name=Chicago
name=Moscow
name=Beijing
name=Sydney

到目前為止,我已經嘗試了以下方法。

with open('city_names.json','r') as read_file:
    json_data = read_file.read()
data = json.loads(json_data)
for k,v in data.items():
    name=v['CityName']
    print(name)

在很長一段時間內運行上述操作失敗后,我不斷收到此錯誤“類型錯誤:列表索引必須是整數,而不是 str”。 我知道問題是什么,但不幸的是我不知道修復方法。 非常感謝幫助。

要獲取 CityName,您可以遍歷data['CityList']因為它是一個列表:

for v in data['CityList']:
      name=v['CityName']
      print(name)

您的數據是CityList鍵下的字典列表,因此您應該先遍歷列表的子字典,然后輸出CityName鍵的值:

for d in data['CityList']:
    print(d['CityName'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM