Json 在 Python 中转储带有元组的字典

Json dump of dict with tuples inside in Python

我在 Python 中有一个字典,它将元组映射到一个数字,如下所示。

我的目标是以漂亮的 json 格式打印我的数据,但我遇到了错误

import json

data = {
        (7, 0, 4, 1, 0, 0, 3): 2,
        (7, 0, 3, 1, 0, 0, 3): 1,
        (2, 0, 0, 1, 0, 0, 1): 3,
        (7, 0, 2, 1, 0, 0, 3): 4,
        (7, 0, 4, 1, 0, 0, 2): 1,
        (0, 0, 0, 0, 0, 0, 0): 2,
    }

print (json.dumps(data))

我收到一个错误

return _iterencode(o, 0)
TypeError: keys must be a string

看来跟元组有关。

将数据转换为字符串不起作用,只有 returns 一行结果。

"{(7, 0, 4, 1, 0, 0, 3): 2, (7, 0, 3, 1, 0, 0, 3): 1, (2, 0, 0, 1, 0, 0, 1): 3, (7, 0, 2, 1, 0, 0, 3): 4, (7, 0, 4, 1, 0, 0, 2): 1, (0, 0, 0, 0, 0, 0, 0): 2}"

json 中的键必须是字符串。试试这个:

print (json.dumps(({str(k):v for k,v in data.items()})))

您还可以使用缩进使其更漂亮:

print (json.dumps(({str(k):v for k,v in data.items()}),indent=2))