将 collections.Counter 转换为 json

我有这个 collections.Counter

counter_obj
Counter({('A', 'B'): 170,
         ('C', 'D'): 650})

尝试将元组格式的键转换为字符串而不是使用 json.dumps 函数转换为 json

dict = {str(k):v for k,v in counter_obj.items()}
json1 = json.dumps(dict)

当我打印 json 时,我得到了这个\。如何删除它们并获得整洁的 json 格式的反斜杠在哪里?

'{"(\'A\', \'B\')": 170, "(\'C\', \'D\')": 650}'


心有法竹
浏览 209回答 3
3回答

Cats萌萌

他们不在那里。它们被显示是因为您得到的是 json 字符串的表示而不是它的字符串版本。演示:>>> json1'{"(\'A\', \'B\')": 170, "(\'C\', \'D\')": 650}'>>> print(repr(json1))'{"(\'A\', \'B\')": 170, "(\'C\', \'D\')": 650}'>>> print(json1){"('A', 'B')": 170, "('C', 'D')": 650}

吃鸡游戏

看起来是因为元组的每个元素都是一个字符串,而您正在将整个元组转换为一个字符串我自己对 json.dumps 函数不太熟悉,但是在将它传递给 dict 时,你能不能把密钥作为元组保留?

动漫人物

我建议你看看str(('A', 'B'))产生了什么,因为它会有反斜杠来保留单引号
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python