【问题标题】:How to process python dictionary items in the order of value item?如何按值项的顺序处理python字典项?
【发布时间】:2016-07-31 18:39:27
【问题描述】:

我从 Web 服务获得以下 JSON。如何在 Python 中从以下 JSON 获取有序集合。我想按“订单”号的升序处理键值对。

{
  "key1": {
    "order": 10,
    "name": "somenameZ"
  },
  "key2": {
    "order": 3,
    "name": "somenameY"
  },
  "key3": {
    "order": 8,
    "name": "somenameX"
  }
}

【问题讨论】:

    标签: python json sorting dictionary


    【解决方案1】:

    使用自定义键对 dict.items() 结果进行排序:

    ordered = sorted(outerdict.items(), key=lambda kv: kv[1]['order'])
    for key, item in ordered:
        # ...
    

    如果您只需要嵌套字典,而不需要外部键,您可以对 dict.values() 执行相同操作:

    ordered = sorted(outerdict.values(), key=lambda v: v['order'])
    for item in ordered:
        # ...
    

    【讨论】:

    • 谢谢,完美运行。我以前没用过 lambda!看起来很强大。在 kv 中:kv[1],这里的 1 是什么?
    • @Nemo:dict.items() 序列中的每个条目都是一个带有键和值的元组; kv[1] 选择值(您的嵌套字典)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2019-08-10
    • 2015-10-21
    相关资源
    最近更新 更多