【问题标题】:Python - A list of dictionaries, accessing values by key when the values are a listPython - 字典列表,当值是列表时按键访问值
【发布时间】:2021-08-04 05:59:39
【问题描述】:

我有一长串这样的字典:

dict_data = [{'country': 'canada', 'province': 'alberta', 'city': 'calgary', 'sales': 1450, 'date': ['14', '02', '2021']}, {'country': 'canada', 'province': 'ontario', 'city': 'toronto', 'sales': 2003, 'date': ['12', '02', '2021']}]

我需要按月过滤销售数据以对其进行计算。但是当值是一个列表时,我被困在如何按键访问字典值上。首先,我试图将日期字符串转换为整数。

for row in dict_data: 
    row['date'] = int(row['date'])

我收到一个错误“TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“列表””。与此方法类似,可以将日期拆分为单独的字符串。

我认为我可以通过使用类似于 dict_data['date'][1] 的内容来访问月份来访问日期的列表值,但这也不起作用,我假设因为我有一个字典列表,而不仅仅是一个?我需要遍历字典列表吗?我该怎么做?

【问题讨论】:

标签: python list dictionary type-conversion


【解决方案1】:

对于这样的问题,我会使用map

dict_data = [{'country': 'canada', 'province': 'alberta', 'city': 'calgary', 'sales': 1450, 'date': ['14', '02', '2021']}]
for loc in dict_data:
    loc['date'] = list(map(int,loc['date']))

另外,你不能这样做int([1,2,3])。您可以使用地图或列表理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    相关资源
    最近更新 更多