python - 如何仅格式化循环python中的项目数

标签 python formatting

我在线读取了一个文件并将其转换为 JSON。我已经得到了结果,但想要格式化数字(2345687623,456,875345653345,653 )

data_file = [{"name":"python", "downloads":23456876, "version": "3.4.2", "version_downloads": 345653 }]

我编写了代码来获取值,但如果我在 for k in key 内使用 try except 语句。它不会转换,我也使用了另一种方法,但得到无法将自动字段转换为mamual格式或其他内容

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: 2,345,676
Latest downloads: 345653

最佳答案

不确定您正在做什么索引,但您可以使用 isinstance 来检查整数并进行格式化(如果是):

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 进行检查可能会更简单。

关于python - 如何仅格式化循环python中的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31899363/

相关文章:

python - 描述此 python windows os.chdir 行为的文档?

python - 如何在 Django 管理站点中显示 django-simple-history 的历史表?

python - 在服务器上找不到脚本语言 'Python'

python - 带有变量python3.6的中心文本

c++ - 将 float 转换为格式化字符串

python 表达式

python - 从文本文件加载多个图像

C# Nullable DateTime 格式错误 - 无法将类型 'string' 隐式转换为 'System.DateTime?'

javascript - Handsontable:更新列设置,但排除第一行

ios - 使 NSNumberFormatter 始终将输入的最右边两位数视为小数部分