簡體   English   中英

意外的KeyError:在Python 2.7.10中

[英]Unexpected KeyError: in Python 2.7.10

我是Python編碼的新手,我的代碼遇到了意外錯誤。 任何幫助,將不勝感激

import json
from urllib2 import urlopen

response = urlopen("https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json")
source = response.read()

# print(source)

data = json.loads(source)

# print(json.dumps(data, indent=2))

usd_rates = dict()

for item in data['list']['resources']:
    name = item['resource']['fields']['name']
    price = item['resource']['fields']['price']
    usd_rates[name] = price
    print name, price

在此處輸入圖片說明

由於在“資源”>“字段”下沒有標簽“名稱”,因此出現錯誤。

您可以添加檢查,是否始終不會獲得標簽“名稱”:

name = item['resource']['fields'].get('name', '')

使用get從json / dict中獲取值,並使用None檢查。

    import json
    from urllib2 import urlopen

    response = urlopen("https://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json")
    source = response.read()

    # print(source)

    data = json.loads(source)

    # print(json.dumps(data, indent=2))

    usd_rates = dict()

    for item in data['list']['resources']:
        name = item.get('resource').get('fields').get('name')
        price = item.get('resource').get('fields').get('price')
        if name is not None:
            usd_rates[name] = price
            print name, price

暫無
暫無

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

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