我知道The Zen of Python狀態
Flat is better than nested.
但是,對於我而言,我有嵌套類型的字典的一些水平。所以我遞歸處理它:
import json
def key_to_json(data):
if data is None or isinstance(data, (bool, int, str)):
return data
if isinstance(data, (tuple, frozenset)):
return str(data)
raise TypeError
def to_json(data):
if data is None or isinstance(data, (bool, int, tuple, range, str, list)):
return data
if isinstance(data, (set, frozenset)):
return sorted(data)
if isinstance(data, dict):
return {key_to_json(key): to_json(data[key]) for key in data}
raise TypeError
data = {('category1', 'category2'): {frozenset(['cat1', 'cat2']): 1212}}
json.dumps(to_json(data))
# '{"(\'category1\', \'category2\')": {"frozenset({\'cat2\', \'cat1\'})": 1212}}'
調整此代碼以匹配您的上下文。
你知道JSON格式嗎?它不允許像'('category1','category2')這樣的鍵 - 它根本就沒有元組。你將不得不重新組織你的數據。 – user2357112
你可以通過像{「category1#category2」:4}這樣的元組創建字符串來破解它。 JSON本身不能用元組作爲鍵。 – Aditya