从API获取数据会产生TypeError:不可用类型:'dict'

时间:2014-12-03 12:18:49

标签: python api dictionary

我正在尝试在Python 2.7中构建业务数据分析应用程序的原型。代码是:

import urllib2
import json

url = 'http://dev.c0l.in:8888'
api = urllib2.urlopen(url)
data = json.load(api)

for item in data:
    print item[{'sector':'technology'}]

它必须从API获取数据并仅打印出技术公司的名称。而不是我得到

Traceback (most recent call last):
  File "C:\Users\gniteckm\Desktop\all2.py", line 9, in <module>
    print item[{'sector':'technology'}]
TypeError: unhashable type: 'dict'

1 个答案:

答案 0 :(得分:1)

您无法过滤词典;他们不接受询问。您将传递item字典中实际存在的密钥,并且因为这是JSON,item将只有字符串密钥。

您可以使用if语句过滤特定的键值对:

for item in data:
    if item['sector'] == 'technology':
        print item

这假设item中的所有data词典都有一个'sector'键。如果没有,请使用dict.get()在缺少密钥时返回默认值:

for item in data:
    if item.get('sector') == 'technology':
        print item