我在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字符串排序?
您将值存储到Python中dict,而Python 根本没有内在的排序概念,它只是键值映射。因此,当您将项目放入values变量时,它们将失去所有排序。
dict
values
实际上,获得确定性排序的唯一方法是使用sort_keys=True,我假设它们以字母数字顺序放置。为什么订单如此重要?
sort_keys=True