我在这里使用这个包装器:
https://github.com/mondeja/bittrex_v2
我在这里使用此代码:
b = Bittrex(api_key="myapikey", api_secret="mysecretkey")
ba = b.get_balance()
print (ba)
印刷品(ba)推出: https://pastebin.com/x5AVLDXH(已经很久了)
我如何将其转换为JSON?我知道它需要双引号而不是单引号而且十进制('#')不正确......
或者我如何编辑包装器以使其将其打印到JSON?
谢谢!
答案 0 :(得分:0)
看起来你打印出一个字典,而不是一个字符串。如果是这样,你绝对不想将其转换为字符串表示形式,然后尝试将该字符串表示转换为JSON字符串。您只想直接将dict编码为JSON。
唯一明显的棘手问题是将Decimal
值转换为JSON可以处理的值。你必须决定你想要什么 - 也许只是转换为float
,也许转换为float
,但也验证你没有失去任何精确度,也许转换为字符串,或者也许甚至转换为一些像{'type': 'decimal.Decimal', 'args': ['0E-8']}
这样的特殊事情。您想要哪一个完全取决于您以后如何计划使用JSON。
一旦你决定了你想做什么,这很容易。 json.Encoder
的文档有一个示例,说明如何通过将任意迭代器转换为list
来支持它们,这很容易适应,比如支持Decimal
,将它们转换为{ {1}} S:
float
我没有对你的字典进行过测试,或者经过艰苦的扫描,看看是否有其他奇怪的类型。但如果存在,则按照与class DecimalEncoder(json.Encoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
return float(o)
return super().default(o)
enc = DecimalEncoder()
json_string = enc.encode(big_dict_with_decimals)
相同的方式处理它们。