2015-08-08 32 views
2

我在線閱讀文件並將其轉換爲JSON。我已經得到了結果工作,但希望數字的格式(2345687623,456,875345653345,653如何格式化循環中的項目數python

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

我寫的代碼來獲取值,但如果我用for k in keytryexcept聲明。它不會轉換,我也用另一種方式,但得到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 
+0

's = 23456876; print(「{:,}」。format(s))' –

+0

@PadraicCunningham我知道這件事。但我的結果是在一個循環和不同的數據類型的組合。我不能這樣做,因爲我只想格式化數字只有 – Tushortz

+0

我不明白爲什麼它在Python中有它,你可以做一些像n = 45786345; myl = list(n); mod = myl%3;對於我在myl中:print(i,end =「」);如果mol == 0:print(「,」,end ==「」);摩爾= 4; mol- = 1 ......好了,現在我明白了爲什麼那裏有東西:) – Brambor

回答

2

不知道你在做什麼索引,但你可以使用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。

+0

感謝第一個例子'isInstance'的工作和偉大的學習新東西 – Tushortz

+0

沒有問題,您的歡迎。 –