OKEX交易所api接口V1版本与V3版本区别ValueError: If using all scalar values, you must pass an index(已解决)

在抓取OKEX交易所的比特币价格数据时,发生上述错误

OKEX交易所api接口V1版本与V3版本区别ValueError: If using all scalar values, you must pass an index(已解决)_第1张图片

尝试各种办法都没有解决,最后才发现,是不是程序问题,是OKEX给予的api返回值问题.

上述代码中使用的是V3版本的api,如果换成V1版本,就可以正常使用了.

OKEX交易所api接口V1版本与V3版本区别ValueError: If using all scalar values, you must pass an index(已解决)_第2张图片

  • 解决方案一

简单点就直接用V1版本,不深究了

  • 解决方案二

用V3版本也是的可以的,在构建输出的DataFrame时,加上index=[0]参数就可以了.同时要将dtype= 'float’参数删除,因为V3返回数据与V1返回数据不同,V3中有字符串格式的没法转变成’float’格式

# V1版本api对应相关代码
url = 'https://www.okex.com/api/v1/ticker.do?symbol=%s' % symbol
df = pd.DataFrame(json_data,dtype='float',index=[0])
# V3版本api对应相关代码
url = 'https://www.okex.com/api/spot/v3/instruments/%s/ticker' % symbol
df = pd.DataFrame(json_data,index=[0])

OKEX交易所api接口V1版本与V3版本区别ValueError: If using all scalar values, you must pass an index(已解决)_第3张图片

v1版本api返回值都是数据;

OKEX交易所api接口V1版本与V3版本区别ValueError: If using all scalar values, you must pass an index(已解决)_第4张图片

v3版本api返回值中不仅有数据,还有字符串,不能全部转化成’float’,因此报错

.

.

.

2018-11-25 23:04:55写于滨州

你可能感兴趣的:(Error,小白学Python,小白学量化交易)