-1

在 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如何确定传递给它的值的写入/输出顺序,大写字母优先于小写字母,反之亦然,有没有办法保持顺序?

4

1 回答 1

2

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

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

于 2012-12-31T00:57:32.600 回答