簡體   English   中英

json to python dictionary covertion以隨機順序返回

[英]json to python dictionary covertion return in random order

我正在使用“json.loads()”將json數據轉換為python字典,但是輸出與原始json數據的順序不同。

JSON

{
"cam":{
"cam1":{"dly":11,"val":12,"alg":13,"blk":14},
"cam2":{"dly":21,"val":22,"alg":23,"blk":24},
"cam3":{"dly":31,"val":32,"alg":33,"blk":34},
"cam4":{"dly":41,"val":42,"alg":43,"blk":44},
"cam5":{"dly":51,"val":52,"alg":53,"blk":54},
"cam6":{"dly":61,"val":62,"alg":63,"blk":64},
"cam7":{"dly":71,"val":72,"alg":73,"blk":74},
"cam8":{"dly":81,"val":82,"alg":83,"blk":84},
"cam9":{"dly":91,"val":92,"alg":93,"blk":94},
"cam10":{"dly":101,"val":102,"alg":103,"blk":104},
"cam11":{"dly":111,"val":112,"alg":113,"blk":114},
"cam12":{"dly":121,"val":122,"alg":123,"blk":124},
"cam13":{"dly":131,"val":132,"alg":133,"blk":134},
"cam14":{"dly":141,"val":142,"alg":143,"blk":144}
}
}

python2_7.py

import json

jscam=json.loads(json)  #printing this also shows datas are unorderd
cam_js=jscam['cam']

for key,value in cam_js.iteritems():
    print key
    for key1,value1 in value.iteritems():
       print key1,value1
       print('\n')

產量

cam9
val 92
alg 93
blk 94
fl 91


cam8
val 82
alg 83
blk 84
fl 81

cam3
val 32
alg 33
blk 34
fl 31..............

它與原始json的順序不一樣,在我的情況下我需要以正確的順序將其轉換為html表,謝謝

Python dict是無序的,因此您會丟失初始數據的順序。 解決方法是使用內置collections模塊中的OrderedDict

import json
import collections
ordered_json = json.loads(your_json_string, object_pairs_hook=collections.OrderedDict)

這里有關於OrderedDict的更多文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM