json如何确定写/输出顺序

时间:2012-12-31 00:54:48

标签: python json

在Python的STL中使用json并想出了这个......

import json as j

cred = j.dumps({'Name': 'John Doe', 'Occupation': 'Programmer'},
            sort_keys = True,
            indent = 4,
            separators = (',', ': '))

_f = open('credentials', 'w')
_f.write(cred)
_f.close()

输出在下面,一切都很好..

  

{

  "Name": "John Doe",
  "Occupation": "Programmer"
     

}

然而,我不小心用小写字母输入了这个名字..

cred = j.dumps({'name': 'John Doe', 'Occupation': 'Programmer'},
            sort_keys = True,
            indent = 4,
            separators = (',', ': '))

结果就是这个..

  

{

  "Occupation": "Programmer",
  "name": "John Doe" 
     

}


json如何确定传递给它的值的写入/输出顺序,大写的优先级是小写,反之亦然,有没有办法保留顺序?

1 个答案:

答案 0 :(得分:2)

Python词典以及JSON对象没有订单。您可能看到的任何订单都是任意的,并且可能随时更改。如果要以JSON格式存储订单,则需要使用数组而不是对象。

sort_keys似乎保证了某种输出顺序,但这可能只会使它对人类更具可读性。阅读JSON的计算机不应该关心字段顺序。