【发布时间】:2017-12-27 02:51:00
【问题描述】:
我正在尝试使用 Python pandas 从 poloniex API 中提取货币对。
我相信返回的数据只是一个列名:
Columns: [{"BTC_BCN":{"BTC":"479.74697466", "BCN":"1087153595.32266165"}, "BTC_BELA":{"BTC":"32.92293515", "BELA":"1807337.13247948"}, "BTC_BLK":{"BTC":"25.70374054", "BLK":"606717.86348734"}, "BTC_BTCD":{"BTC":"24.32220571", "BTCD":"1264.02352237"}, "BTC_BTM":{"BTC":"11.57816905", "BTM":"80673.47934437"}, "BTC_BTS":{"BTC":"1102.88787610", "BTS":"30426626.64558044"}
我想要的结果:BTC_BCN, BTC_BELA, BTC_BLK, 等等...
但不确定是否有一种简单的方法可以在不进行字符串解析的情况下得到它,因为它们似乎都只是列名。
代码:
from bs4 import BeautifulSoup
import csv
import urllib2
import pandas as pd
try:
from StringIO import StringIO
except:
from io import StringIO
sock= urllib2.urlopen('https://poloniex.com/public?command=return24hVolume')
link=sock.read()
soup = BeautifulSoup(link,'lxml')
csv_data = StringIO(soup.text)
df=pd.read_csv(csv_data,delimiter=' *, *',engine='python')
df2=df.iloc[1:2,0:20]
【问题讨论】:
-
获取列名,您可以这样做
list(df.columns) -
list(df.keys()) 似乎有效。
标签: python pandas beautifulsoup