我有一些非常简单的代码,它将带有元组的字典作为键并将其转换为 json:
In [11]:
import simplejson as json
In [12]:
data = {('category1', 'category2'): 4}
In [13]:
json.dumps(data)
Run Code Online (Sandbox Code Playgroud)
但是,运行代码给了我:
TypeError: keys must be a string
Run Code Online (Sandbox Code Playgroud)
我试过 str() 对键和我能找到的所有其他东西,但没有运气。
错误似乎很清楚:您的键必须是字符串。
如果我从你的问题中举个例子并str()-ify 键:
>>> data = {str(('category1', 'category2')): 4}
Run Code Online (Sandbox Code Playgroud)
它工作得很好:
>>> json.dumps(data)
'{"(\'category1\', \'category2\')": 4}'
Run Code Online (Sandbox Code Playgroud)
话虽如此,在您的位置上,我会考虑使您的密钥更具可读性。可能是这样的:
>>> data = dict((':'.join(k), v) for k,v in data.items())
Run Code Online (Sandbox Code Playgroud)
这会将一个键('category1', 'category2')变成category1:category2,