由于本网站上非常有帮助的人,我已经能够整合一个脚本,该脚本获取用户名(由用户输入),然后使用循环将每个用户名附加到特定的JSON结构.但是,我注意到我的JSON转储中的顺序没有得到维护.例如,这是我的循环和JSON转储的样子:
list_users = []
for user in users:
list_users.append({"name": user,
"member": 123,
"comment": "this is a comment"})
json_user_list_encoding = json.dumps(list_users, indent=2)
Run Code Online (Sandbox Code Playgroud)
我的打印看起来像这样:
({"member": 123,
"comment": "this is a comment"
"name": user
})
Run Code Online (Sandbox Code Playgroud)
我想知道当我使用JSON转储时是否可以在"list_users"中维护相同的顺序.我已经看了一下这个网站,根据我的阅读,我将不得不分配密钥以维持特定的订单.但是,我不知道如何做到这一点,因为我只有一个JSON对象.我希望这是有道理的.谢谢您的帮助.
如果你只是想要它们可靠/可重复地订购,但不关心订单本身,那么json转储接受一个sort_keys可以帮助的kwarg:
>>> json.dumps({'z': 3, 'b': 2, 'a': 1})
'{"a": 1, "z": 3, "b": 2}'
>>> json.dumps({'z': 3, 'b': 2, 'a': 1}, sort_keys=True)
'{"a": 1, "b": 2, "z": 3}'
Run Code Online (Sandbox Code Playgroud)
否则,将用户放在OrderedDict一个普通的dict中.
from collections import OrderedDict
list_users.append(OrderedDict([
("name", user),
("member", 123),
("comment", "this is a comment"),
]))
Run Code Online (Sandbox Code Playgroud)
如果您需要将它们反序列化为相同的顺序,请使用object_pairs_hook加载时.
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |