【问题标题】:Python iterate over multi value nested dictionary [closed]Python迭代多值嵌套字典[关闭]
【发布时间】:2017-11-22 15:04:22
【问题描述】:

我有以下数据结构调用 letters_dict:

'aa': {'Price': '147,130,104,24,19',
       'Qty': '262,53,65,80,185,210',
       'Time': '51302324915,51308461317,51316258845,51324326568'},

'bb': {'Price': '196,203,209,177,150,160,160,180,194',
       'Qty': '129,268,225,228,176,76,17,45,207,61,143,195,230,97',
       'Time': '51305086913,51314981179,51323072726,51435766657,51597990966'}}

我想遍历外部字典的每个项目,然后是内部值、价格数量和时间,然后是价格数量和时间中的每个值,然后进行数据处理。最好的方法是什么?

【问题讨论】:

  • 请展示你到目前为止所做的尝试
  • 顺便说一句,您的内部字典中的值是逗号分隔值的字符串

标签: python dictionary


【解决方案1】:
for key_1 in letters_dict:
    for key_2 in letters_dict[key_1]:
        for value in letters_dict[key_1][key_2].split(','):

这对我来说是最简单的方法(并不意味着最好)。 我不知道你为什么没有尝试...

【讨论】:

  • AttributeError: 'dict' 对象没有属性 'split'
  • 是的,编辑了答案。
【解决方案2】:

首先使用 key_level1 和 val_level1 迭代外部值,然后使用 key_level2 和 val_level2 迭代内部值:

for key_level1, val_level1 in r.items():
        for key_level2, val_level2 in val_level1.items():
            for val in val_level2.split(','):
                # Example:
                # do something
                print(key_level1, key_level2, val)

【讨论】:

  • 这仍然会打印整个字典,而不仅仅是价格
  • 这仍然不会遍历价目表中的每个逗号分隔值
  • @Jaron787,终于明白你的要求了。我想这就是你要的......(编辑答案)
  • 这很好,谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 2021-11-29
  • 1970-01-01
相关资源
最近更新 更多