Python - 字典中元素的自定义排序

时间:2016-08-04 18:36:24

标签: python json sorting dictionary

我有一个空字典,用于表示位置,速度等时间戳数据的集合,以便将此信息存储在.json文件中。我希望以给定的顺序填充字典,以便将所有位置矢量数据(XYZ值)放在一起,将所有速度矢量数据(XYZ值)放在一起,等等。我这样做的脚本如下所示:

dictEntries = {'timestamp':[]}
for entry in entries:
   ...
   posXYZ = entry.getPosXYZ()
   velXYZ = entry.getVelXYZ()
   eVctr = entry.getEulerAngle()
   posABC = entry.getPosABC()
   velABC = entry.getVelABC()

   tmStmp = {}

   tmStmp['zVel'] = velABC[2]
   tmStmp['yVel'] = velABC[1]
   tmStmp['xVel'] = velABC[0]

   tmStmp['zPos'] = posABC[2]
   tmStmp['yPos'] = posABC[1]
   tmStmp['xPos'] = posABC[0]

   tmStmp['Value'] = time
   ...
   dictEntries['timestamp'].append(tmStmp)

但是,当我检查字典中的输出时,元素按字母顺序排列并基于大小写(这是标准的)。使用json.dump()打印的.json文件的输出是无组织的,与将其放入字典的方式有关

{
    "timestamp": [
       {
          "xPos": 5.2, 
          "zPos": 3.5,
          "yPos": 7.7,
          "Value": 0.0,
          "zVel": 3.5, 
          "xVel": 5.2,
          "yVel": 7.7
       }, 
       {...}
    ]
}

问题可能是由使用json.dump引起的,但我想在尝试修复之前检查所有可能性。有没有办法以自定义方式对字典进行排序,以便将位置值放在一起,将速度值放在一起等等?或者有没有办法以特定的顺序将字典输出到json文件,而不是仅仅将内容转储到其中?

0 个答案:

没有答案