This question already has answers here:
json serialize a dictionary with tuples as key
                                
                                    (6个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试使用以下代码将字典转储到json文件:

import json
with open('save.json', 'w') as outfile:
    json.dump({
        (0, 0): 0,
        (0, 1): 1,
        (1, 0): 0,
        (1, 1): 1,
    }, outfile)


但是我在使用元组作为键时遇到了问题。当我定义字典时,此方法有效,但是当我尝试将其转储到文件中时,出现此错误:

TypeError: key (0, 0) is not a string


我在基于Linux的计算机上使用Python 3。

任何帮助解决此问题将不胜感激。

最佳答案

JSON标准要求键为字符串。
如果您的目的是将该词典保存到文件中,请考虑使用pickle模块:

import pickle
with open('save.json', 'w') as outfile:
    pickle.dump({
        (0, 0): 0,
        (0, 1): 1,
        (1, 0): 0,
        (1, 1): 1,
    }, outfile)

08-05 03:24
查看更多