我在线阅读了一个文件并将其转换为JSON。我已经得到了工作结果,但想要格式化数字(23456876
到23,456,875
和345653
到345,653
)
data_file = [{"name":"python", "downloads":23456876, "version": "3.4.2", "version_downloads": 345653 }]
我写了代码来获取值,但如果我在for k in key
中使用try
except
语句。它不能转换,我也用了另一种方法,但得到了cannot convert automatic fields to mamual formatting or something
titles = ["name", "downloads", "version", "Latest downloads"]
key = ["name", "downloads", "version", "version_downloads"]
i = 0
while i < len(data_file):
results = []
for k in key:
print("{}: {}".format(titles[key.index(k)], data_file[i][k]))
print()
i+=1
结果现在看起来像这样:
name: python
downloads: 23456876
latest version: 3.4.2
Latest downloads: 345653
如何打印downloads
为:
downloads: 2,345,676
Latest downloads: 345653
不知道你在做什么索引,但你可以使用isinstance检查int并进行格式化,如果它是:
data_file = [{"name":"python", "downloads":23456876, "version": "3.4.2", "version_downloads": 345653 }]
titles = ["name", "downloads", "version", "Latest downloads"]
key = ["name", "downloads", "version", "version_downloads"]
for d in data_file:
for k in key:
val = d[k]
if isinstance(val, int):
val = "{:,}".format(val)
print("{}: {}".format(titles[key.index(k)], val))
输出:name: python
downloads: 23,456,876
version: 3.4.2
Latest downloads: 345,653
我将使用字典来映射名称并进行查找,而不是索引:
titles = ["name", "downloads", "version", "Latest downloads"]
key = ["name", "downloads", "version", "version_downloads"]
match = dict(zip(key,titles))
for d in data_file:
for k in key:
val = d[k]
if isinstance(val, int):
val = "{:,}".format(val)
print("{}: {}".format(match[k], val))
输出:name: python
downloads: 23,456,876
version: 3.4.2
Latest downloads: 345,653
如果唯一的区别是"version_downloads"
,则使用If进行检查可能更简单。