在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如何确定传递给它的值的写入/输出顺序,大写的优先级是小写,反之亦然,有没有办法保留顺序?
答案 0 :(得分:2)
Python词典以及JSON对象没有订单。您可能看到的任何订单都是任意的,并且可能随时更改。如果要以JSON格式存储订单,则需要使用数组而不是对象。
sort_keys
似乎保证了某种输出顺序,但这可能只会使它对人类更具可读性。阅读JSON的计算机不应该关心字段顺序。