0

このディクショナリを読み込んで、各キー値の値を int に変換する方法はありますか? もともとは文字列ですが、int にしたいと思います。これは私が試したものですが、エラーが発生しています! 各キーは次のようになります {'USA': ('123,123', '312,321,321')}

**def _demo_fileopenbox():        
msg  = "Pick A File!"
msg2 = "Select a country to learn more about!"
title = "Open files"
default="*.py"
f = fileopenbox(msg,title,default=default)
writeln("You chose to open file: %s" % f)

countries = {}

with open(f,'r') as handle:
    reader = csv.reader(handle, delimiter = '\t')  
    for row in reader:
        countries[row[0]] = ((int(row[1])),(int(row[2])))
    while 1:
        reply = choicebox(msg=msg2, choices= list(countries.keys()) )
        writeln(reply + ";\tArea: " + (countries[reply])[0] + "\tPopulation: " + (countries[reply])[1] )
  **

ありがとう!

4

2 に答える 2

2

int文字列をsに変換する前に、文字列からコンマを削除してみてください。

countries[row[0]] = (int(row[1].replace(',', '')), int(row[2].replace(',', '')))
于 2013-02-26T23:57:37.020 に答える
0

問題は、数字にコンマが含まれていることです。コードを次のように変更します。

for row in reader:
    countries[row[0]] = tuple(int(a.replace(",","")) for a in row[1:])
于 2013-02-26T23:58:32.940 に答える