简体   繁体   English

在字典Python中对键进行排序

[英]Sort keys in a dictionary Python

I have a Json file like this: 我有一个像这样的Json文件:

{
  "wasGeneratedBy": {
    "_:wGB3": {
      "prov:entity": "ivo://stsci/DSS-digitized-J.444",
      "prov:activity": "stcsiNum-1b"
    },
    "_:wGB1": {
      "prov:entity": "ivo://stsci/DSS-digitized-J.444-cutouts",
      "prov:activity": "cds_cutout444"
    },
    "_:wGB2": {
      "prov:entity": "ivo://stsci/DSS-digitized-I.444",
      "prov:activity": "stcsiNum-1a"
    }
  },
  "activity": {
    "stcsiNum-1a": {},

  },
  "used": {
    "_:u6": {
      "prov:entity": "ivo://stsci/DSS-Plate-R.444",
      "prov:activity": "stcsiNum-1c"
    },
    "_:u2": {
      "prov:entity": "ivo://stsci/DSS-Plate-I.444",
      "prov:activity": "stcsiNum-1a"
    },
    "_:u3": {
      "prov:entity": "ivo://stsci/DSS-digitized-J.444",
      "prov:activity": "cds_cutout444"

  },
  "entity": {
    "ivo://stsci/DSS-digitized-R.444": {},
    "ivo://stsci/DSS-digitized-J.444-cutouts": {},
    "ivo://stsci/DSS-Plate-R.444": {},
  }
}

But I want to sort all the keys ("wasGenereratedBy","activiy"...) in a specific order like this ("activity","entity","used","wasGeneratedBy") 但是我想按这样的特定顺序(“活动”,“实体”,“已使用”,“ wasGeneratedBy”)对所有键(“ wasGenereratedBy”,“活动” ...)进行排序

I have declared this: 我已经声明了这一点:

my_own_order = ['entity', 'used', 'activity','wasGeneratedBy']

And I have try this, but doesn't work: 我已经尝试过了,但是没有用:

print sorted(fileName,order=my_own_order)

Any suggestions ? 有什么建议么 ? Thanks you 谢谢

Use OrderedDict : 使用OrderedDict

from collections import OrderedDict

print OrderedDict((k,mydict[k] for k in  my_own_order))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM