我请求一个数据循环,我想得到一堆硬币的id,通过它们运行一个指示器来检测哪一个是趋势,并过滤掉其余的
API_URL = 'https://api.coingecko.com/api/v3'
r_coins_d = requests.get(API_URL + '/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=10&page=1&sparkline=false')
d_coins = r_coins_d.json()
df_coins_markets = pd.DataFrame(d_coins)
#=========== GET COIN IDS =======
for n in range(10):
coin_id = df_coins_markets.id[n]
r_market_d = requests.get(API_URL + f'/coins/{coin_id}/market_chart?vs_currency=usd&days=30&interval=hourly')
d_market = r_market_d.json()
df_market = pd.DataFrame(d_market)
df_market.columns = ['date', 'price', 'haha']
#df_market['date'] = pd.to_datetime(df_market['date'], unit='ms')
print(d_market)
但是,以下代码返回一个错误:
TypeError: unhashable type: 'list'
如何进步
编辑:完整错误消息:
le "debug.py", line 24, in <module>
df_market['date'] = pd.to_datetime(df_market['date'], unit='ms')
File "/Users/teo/.local/share/virtualenvs/trendingcoin-nriNAUCq/lib/python3.8/site-packages/pandas/core/tools/datetimes.py", line 801, in to_datetime
cache_array = _maybe_cache(arg, format, cache, convert_listlike)
File "/Users/teo/.local/share/virtualenvs/trendingcoin-nriNAUCq/lib/python3.8/site-packages/pandas/core/tools/datetimes.py", line 173, in _maybe_cache
if not should_cache(arg):
File "/Users/teo/.local/share/virtualenvs/trendingcoin-nriNAUCq/lib/python3.8/site-packages/pandas/core/tools/datetimes.py", line 137, in should_cache
unique_elements = set(islice(arg, check_count))
TypeError: unhashable type: 'list'
更新:在遵循Trenton的建议后,如果我将输入保持为df_market = pd.DataFrame(d_market['prices'], columns=['dateTime', 'price'])
,它就会工作
但是,如果我添加另一列,我希望
df_market = pd.DataFrame(d_market[['prices', 'total_volumes']], columns=['dateTime', 'price'])
我再次得到一个错误,TypeError:unhabable Type:list
第一节
第二节
df_market = pd.DataFrame(d_market)
,将创建lists
列李>'date'
和'price'
、'market_caps'
和'total_volumes'
的相关值李>lists
中的信息提取到单独的数据帧中,然后将数据帧与pandas.concat
组合df_market_dict
的数据帧从
dict
中绘制DataFrames
使用
pd.concat()
汇总详细请求的所有结果。有>;在pd.json_normalize()
输出之后的1.5k列只是一个示例输出
相关问题 更多 >
编程相关推荐