将字典列表中的字符串更改为整数

2024-09-27 21:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的列表如下所示:

print(dataset[0:2])

其中:

[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}, {'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}]

但是,我想将“cases”和“population2019”中的值改为整数,而不是字符串

我用这段代码将字符串改为整数

for i in dataset:        #Changes the value of multiple keys to integers instead of string 
    for key in i:
        i['cases'] = int(i['cases'])
        i['population2019'] = int(i['population2019'])

它确实将“cases”的值改为整数而不是字符串,但它不适用于“population2019”,因为我认为它是一个大整数('38041757')

错误是:

ValueError: invalid literal for int() with base 10: ''

Tags: 字符串fordate整数yeardatasetintday
3条回答

我相信您有这个错误,因为当您试图转换它时population2019是一个空字符串(“”)

试试这个:

dataset['cases'] = dataset['cases'].astype(int)
dataset['population2019'] = dataset['population2019'].astype(int)

我希望它对你有用

您的代码非常好。正如GProst所说,错误即将出现,因为如果i['cases']或i['population2019']为空。只需在转换之前添加一个条件

for i in dataset:        #Changes the value of multiple keys to integers instead of string 
    if i['cases'] != '':
        i['cases'] = int(i['cases'])
    if i['population2019'] != '':
        i['population2019'] = int(i['population2019'])

相关问题 更多 >

    热门问题