gpt4 book ai didi

python3 : can json be decoded as tuple?

转载 作者:行者123 更新时间:2023-12-01 08:34:07 25 4
gpt4 key购买 nike

import json
t = (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))
j = json.dumps(t)
x = json.loads(j)
print(t) # (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))
print(x) # [[[9, 1, 4]], [], [[14, 5, 10]], [[0, 4, 5]]]

如何直接从 json.loads() 将 json 字符串解码为(层次结构深的)元组?

我知道 json 编码将元组和列表保存为“数组”,但实际上,我的不可变“t”变量非常大且只读,因此元组样式(据我所知)更快、更紧凑在内存中比在列表样式中。

想法?谢谢!

最佳答案

JSONJavaScript 对象表示法 的缩写形式,在 JavaScript 中,有一种称为 数组 的数据结构,我们使用括号 [ ] 不是像 Python 中的元组那样的括号 ( )

因此,每当您尝试将元组转换为字符串json.dumps()时,它都会在内部更改为数组形式,如JavaScript中的数组形式和< Strong>Python 并用方括号 [ ] 括起来。

import json
t = (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))

j = json.dumps(t)
x = json.loads(j)
print(t) # (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))
print(x) # [[[9, 1, 4]], [], [[14, 5, 10]], [[0, 4, 5]]]

如果您的意图是将元组转换为字符串,然后再次从该字符串表示形式转换为真正的Python对象(这里是元组)那么这就是解决方案。

j2 = str(t) 
x2 = eval(j2)
print(j2) # (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))
print(x2) # (((9, 1, 4),), (), ((14, 5, 10),), ((0, 4, 5),))

关于python3 : can json be decoded as tuple?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com