python - APIError(code=-1100): 在参数'symbol'中发现非法字符;合法范围是 '^[A-Z0-9-_.]{1,20}$'
问题描述
import binancekeys
from binance.client import Client
from datetime import datetime
from twisted.internet import reactor
import pandas as pd
client = Client(binancekeys.api_key, binancekeys.api_secret, tld='com')
moedas = ['ETCUSDT', 'ADAUSDT', 'USDTBRL', 'BTCUSDT']
tickers = client.get_symbol_ticker(symbol=(['moedas']))
histo = client.get_historical_klines(tickers['symbol'], Client.KLINE_INTERVAL_5MINUTE, "5 minute ago UTC")
df = pd.DataFrame(histo)
tabela = df.set_axis(['Time', 'Open', 'High','Low','Close','Volume','Close Time','Asset Volume','Number Of Trades','Buy Bae,','Buy Quote','Ignore'], axis=1)
print(tabela)
当我执行这个脚本时,我收到了这个错误: APIError(code=-1100): Illegal characters found in parameter 'symbol'; 合法范围是 '^[A-Z0-9-_.]{1,20}$' - 知道吗?
解决方案
您收到此错误,因为您get_symbol_tickers()
使用列表调用(而不是单个符号,请查看文档文档)。
如果您想要多个符号,我建议在get_symbol_tickers()
不指定任何符号的情况下调用,然后在进一步的步骤中过滤所需的符号。
在下面,您可以找到解决问题的可能方法:
from binance.client import Client
import pandas as pd
# Selection of symbols
moedas = ['ETCUSDT', 'ADAUSDT', 'USDTBRL', 'BTCUSDT']
# Initialize client, no key or secret needed.
client = Client()
# Get all tickers and keep only the ones in moedas list
r = client.get_symbol_ticker()
tickers = {i['symbol']: i['price'] for i in r if i['symbol'] in moedas}
# Create empty dict and get klines in iteration
columns = [
'Time', 'Open', 'High', 'Low', 'Close', 'Volume', 'Close Time', 'Asset Volume',
'Number Of Trades', 'Buy Base', 'Buy Quote', 'Ignore',
]
klines = {}
for symbol in moedas:
r_klines = client.get_historical_klines(
symbol, Client.KLINE_INTERVAL_5MINUTE,
"5 minute ago UTC"
)
df = pd.DataFrame(r_klines, columns=columns)
klines[symbol] = df
这将使用 as 键的符号和 kline 数据框作为值返回变量klines
(dict
我moedas
不确定,如果这是您要查找的输出)。
推荐阅读
- google-maps - 谷歌地图:我如何才能获得谷歌评论的确切日期?
- c++ - 第一个函数中的无限循环不知道如何修复
- python - LogitBoost 要求基估计量是回归量
- vb.net - 如何解决错误安装程序(内置)vb.net 2017
- node.js - 一个简单的是/否脚本会产生奇怪的行为
- javascript - 通过 Ajax 运行 php 脚本
- android - Recycler View onClick Listerner 无法将 Intent putExtas 发送到其他活动
- kubernetes - Ansible:无法重新加载sysctl:sysctl:无法统计/proc/sys/net/bridge/bridge-nf-call-iptables:没有这样的文件或目录
- ansible - Ansible Playbook 创建 BitBucket 存储库
- node.js - 无法使用带有 Angular 4 的 emailjs 发送电子邮件