【问题标题】:find a set of values in a python dictionary based on its name根据名称在 python 字典中查找一组值
【发布时间】:2021-11-17 18:18:46
【问题描述】:

我的 JSON 文件具有以下结构:

{ 
  "sets": 
          [ { "Name": "set1",  "Values": [ "value11", "value12" ] },
            { "Name": "set2",  "Values": [ "value21", "value22" ] } 
          ] 
}

名称比这更有意义,JSON 中还有更多。它由json 包读取到字典中,而我的python 脚本有时需要set1set2 中的值。

实际上有2个以上的集合,为了找到合适的集合使用,我现在使用这个for循环:

for s in protocol_data [ "sets" ]:
    if ( s [ "Name" ] == "set2" ):
       # do stuff with "Values"

因此,每次需要另一个集合时,都需要遍历整个集合数组,这与dict 的意图不符。有没有更聪明的方法(可能使用与dict 不同的容器)?

【问题讨论】:

    标签: python arrays json dictionary


    【解决方案1】:

    如何准备一次数据。如果您多次访问数据,这会以内存换取运行时。

    protocol_data_sets = {s['Name']: s['Values'] for s in protocol_data['sets']}
    

    然后你可以通过protocol_data_sets['the set you need']访问所有集合

    【讨论】:

    • 是字典的本意。谢谢!希望这不是一扇敞开的大门……
    猜你喜欢
    • 2018-03-09
    • 1970-01-01
    • 2022-10-13
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2019-09-04
    相关资源
    最近更新 更多