Skip to main content
 首页 » 编程设计

python之字符串到具有多个键值的字典

2025年05月04日18pengyingh

我有一个字符串 '{"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']}