使用 danpaquin 的 cbpro 包,然后我调用“auth_client.get_fills”方法来请求 Coinbase 提供的特定产品的所有订单填写。例如:
all_fills = {}
for product in products:
all_fills[product] = []
fills = a.get_fills(product)
for fill in fills:
for x,y in fill.items():
print(f"\t{x}: {y}")
print(fill)
all_fills[product].append(fill)
print(f"{product} captured.")
作为参考,我程序中的“产品”是 Coinbase 提供的所有硬币配对的列表。 “ETH-USD”、“LTC-USD”等
.get_fills() 返回该特定产品的所有订单填充的生成器。
我的问题是,在某些产品上,生成器(填充)返回的迭代(填充)实际上是字符串“消息”。根据我上面的代码,这自然会产生错误。
AttributeError: 'str' object has no attribute 'items'
我从 Coinbase 文档中了解到错误以 json 的形式返回,其中“消息”是关键之一。
如果这实际上只是各种错误消息、完成消息或其他任何内容的关键...我希望能够看到消息的实际内容,而不仅仅是字符串“消息”。有人知道我错过了什么吗?
答案 0 :(得分:1)
我从 Coinbase 文档中了解到错误以 json 的形式返回,其中“消息”是关键之一。
正确!根据官方 Coinbase 文档(请参阅 https://docs.pro.coinbase.com/#errors),导致错误的调用将输出以下内容:
{
"message": "Invalid Price"
}
,因此是 JSON 或字典格式 - 无论您想以何种方式对其进行解码。
在这种情况下,您可以通过 dictionary_name['message']
检索错误消息的值。
另一种可能性是使用 json 标准库 (https://docs.python.org/3/library/json.html) 并通过 json.dumps(dictionary_name)
转储整个字典本身。