我正在尝试使用非常简单的服务从Python中的RESTfull API收集和打印数据。 这是我的代码:
import requests
import json
response = requests.get("url")
data2 = response.json()
print type(data2)
这是我的问题:当我打印data2类型时,它告诉我它是一个字典,所以当我做data2.
(注意点)我的IDE应该给我一系列方法,如len(),cmp (),str()供我选择。但没有任何表现。
使用Atom的同样的事情发生在我身上。
要清楚,如果我写data2.len()
,它并不是说它是一个错误,所以它识别方法。但它没有将它们作为一种建议。
我该如何解决这个问题?非常感谢你。
答案 0 :(得分:2)
正如评论中提到的那样,PyCharm不知道类型,因为requests
没有声明返回类型。但是可以在这里使用类型注释(参见PEP-484):
response = requests.get("url")
data2 = response.json() # type: dict
print(type(data2))
答案 1 :(得分:0)
PyCharm无法显示您提到的方法表明无法仅从代码中推断出变量的类型。这通常表明代码可能没有准备好在所有情况下正确处理变量的数据(在许多情况下,这意味着错误的代码)。
您的代码在中将类型打印为dict
,特定执行并不意味着始终是{ {1}}(否则PyCharm能够推断出类型)。
使代码更好地准备好在任何情况下处理变量的数据 - 将使类型可推断,这也将允许PyCharm正确填写数据。
例如,您可以像这样编写代码:
dict
,或者
response = requests.get("url")
data2 = response.json()
assert isinstance(data2, dict)
print type(data2) # here data2's methods would be listed