我有一个字符串 '{"News":"news", "News":"politics", "News":"breaking", "News":"stories"}'我正在尝试转换为字典。我已经使用了 json.loads() 和 ast.literal_eval() 来转换它们,但似乎这两种方法都只采用最后一个键值对。
是否有针对此问题的单行解决方案?或者我需要更复杂的东西吗?
请您参考如下方法:
假设该字符串在其他方面是有效的 JSON,您可以将 object_pairs_hook 参数用于 JSON 解码器:
import json
def multidict(l):
result = {}
for k, v in l:
result.setdefault(k, []).append(v)
return result
data = '{"News":"news", "News":"politics", ' \
'"News":"breaking", "News":"stories"}'
data = json.loads(data, object_pairs_hook=multidict)
assert data == {'News': ['news', 'politics', 'breaking', 'stories']}
