一尘不染

Python中的JSON输出排序

json

我在python中遇到JSON问题。

实际上,如果我尝试执行此代码,python会给我一个排序后的JSON字符串!

例如:

values = {
  'profile': 'testprofile',
  'format': 'RSA_RC4_Sealed',
  'enc_key': base64.b64encode(chiave_da_inviare),
  'request': base64.b64encode(data)
}

values_json = json.dumps(values, sort_keys = False, separators = (',', ':'))

这是输出:

{
  "profile": "testprofile",
  "enc_key": "GBWo[...]NV6w==",
  "request": "TFl[...]uYw==",
  "format": "RSA_RC4_Sealed"
}

如您所见,我尝试使用“ sort_keys = False”,但未进行任何更改。

如何停止Python对JSON字符串排序?


阅读 347

收藏
2020-07-27

共1个答案

一尘不染

您将值存储到Python中dict,而Python 根本没有内在的排序概念,它只是键值映射。因此,当您将项目放入values变量时,它们将失去所有排序。

实际上,获得确定性排序的唯一方法是使用sort_keys=True,我假设它们以字母数字顺序放置。为什么订单如此重要?

2020-07-27