urllib 中的 HTTPResponse 错误 python
HTTPResponse Error in urllib python
我正在尝试使用 pandas 来阅读 coinmarketcap API 。
我使用上面的 link 来使用 json_normalize 形成一个基本查询,但我收到以下错误 -
'HTTPResponse' object does not support indexing .
我的查询:-
from urllib.request import urlopen
import pandas as pd
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10'))
输出:-
TypeError: 'HTTPResponse' object does not support indexing
我是 运行 Jupyter Notebook 中的这段代码 pandas 版本 0.20.3
我也看到了这个 post - Retreiving data from a website
但我仍然无法解决我的问题。
请告诉如何处理这个问题。此外,我希望 name
字段作为索引列,由于嵌套 json.
我无法获得
urlopen
生成一个 HttpResponse
对象,而不是 json 字符串。您需要调用其 read
方法来获取 json.
改变
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10'))
到
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10').read())
更新
json_normalize
expects deserialised json,所以你需要先载入json再传递给json_normalize
resp = urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10')
data = json.load(resp)
pd.io.json.json_normalize(data)
我正在尝试使用 pandas 来阅读 coinmarketcap API 。
'HTTPResponse' object does not support indexing .
我的查询:-
from urllib.request import urlopen
import pandas as pd
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10'))
输出:-
TypeError: 'HTTPResponse' object does not support indexing
我是 运行 Jupyter Notebook 中的这段代码 pandas 版本 0.20.3
我也看到了这个 post - Retreiving data from a website
但我仍然无法解决我的问题。
请告诉如何处理这个问题。此外,我希望 name
字段作为索引列,由于嵌套 json.
urlopen
生成一个 HttpResponse
对象,而不是 json 字符串。您需要调用其 read
方法来获取 json.
改变
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10'))
到
pd.io.json.json_normalize(urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10').read())
更新
json_normalize
expects deserialised json,所以你需要先载入json再传递给json_normalize
resp = urlopen('https://api.coinmarketcap.com/v2/ticker/?limit=10')
data = json.load(resp)
pd.io.json.json_normalize(data)