如何在不改变字典结构的情况下存储以元组为键的Python命令?

如何在不改变字典结构的情况下存储以元组为键的Python命令?,python,json,python-3.x,dictionary,Python,Json,Python 3.x,Dictionary,问题: 我试图存储一个以元组为键的python字典,我并没有试图改变字典的结构,因为这个字典中的一个值可以是另一个字典。我尝试使用Json,但因为它只支持字符串类型的键,所以失败了 词典的结构: dict[(s1,s2)] = f 其中s1,s2->strings,f->float 如何将此词典存储为文件。如果您只需要保存对象以备以后使用,则可以使用pickle。试试这个: import pickle a = {('a','b') : 1.2} pickle.dump(a, open('te

问题: 我试图存储一个以元组为键的python字典,我并没有试图改变字典的结构,因为这个字典中的一个值可以是另一个字典。我尝试使用Json,但因为它只支持字符串类型的键,所以失败了

词典的结构:

dict[(s1,s2)] = f
其中s1,s2->strings,f->float


如何将此词典存储为文件。

如果您只需要保存对象以备以后使用,则可以使用pickle。试试这个:

import pickle

a = {('a','b') : 1.2}
pickle.dump(a, open('test.pickle','w'))
b = pickle.load(open('test.pickle','r'))

print a
# {('a', 'b'): 1.2}
print b
# {('a', 'b'): 1.2}

旁注:不要在类后命名变量,使用
d
dict\u
而不是
dict
。可能的重复可以将字符串重新表示写入文件,然后使用将该文件的内容转换回python对象。