【发布时间】:2017-09-27 05:15:51
【问题描述】:
我目前正纠结于如何将 JSON 文件的输出从科学记数法更改为 JSON 字典中某些键的浮点数。
例如我需要这个:
{'消息': '', “结果”:[{“询问”:8.982e-05, 'BaseVolume':235.09663206, “出价”:8.9e-05, '创建':'2017-06-06T01:22:35.727', “高”:9.413e-05, “最后”:8.878e-05, “低”:8.01e-05, 'MarketName': 'BTC-1ST', 'OpenBuyOrders':408, 'OpenSellOrders': 6009, 'PrevDay': 8.375e-05, '时间戳':'2017-09-27T02:17:44.677', '卷':2678614.34426254},
看起来像这样:
{"success":true,"message":"","result":[{"MarketName":"BTC-1ST","High":0.00009413,"Low":0.00008010,"Volume":2678614.34426254 ,"Last":0.00008878,"BaseVolume":235.09663206,"TimeStamp":"2017-09-27T02:13:07.55","Bid":0.00008900,"Ask":0.00008982 ,"OpenBuyOrders":408,"OpenSellOrders":6009,"PrevDay":0.00008375,"Created":"2017-06-06T01:22:35.727"},
我当前的代码如下所示:
#!/usr/bin/python3
import urllib.request, json
from pprint import pprint
from json import encoder
encoder.FLOAT_REPR = lambda o: format(o, '.8f')
with urllib.request.urlopen("https://bittrex.com/api/v1.1/public/getmarketsummaries") as url:
data = json.loads(url.read().decode())
pprint (data)
即使我之前的问题被标记为已回答并且另一个问题的重复问题,这也不起作用。这个“重复”问题与科学记数法无关,也没有解决问题。
【问题讨论】:
-
您正在使用 json 读取文件并使用 pprint 将其显示在控制台上。您似乎关心数据的显示方式,这将是 pprint 而不是 json 的属性。你的意思是问如何改变pprint中浮点值的默认格式?
-
这是一个混淆地图为领土的案例;数据是浮点数,科学记数法是一种将浮点数表示为字符串的格式,它是 JSON 格式和 Python 的
float函数可以将字符串解析为浮点值的允许表示形式。跨度>
标签: python json python-3.x