将Counter编码为Json对象

时间:2013-11-20 09:23:34

标签: python json counter

我想将Counter转换为Json对象,以便将此Counter保存到数据库中。问题是,当我解码Json对象时,我无法更新我的计数器:

from collections import Counter
import json
counter = Counter(['a','a','b','a'])
counterJson = json.dumps(counter)
counter = json.loads(counterJson)
counter.update(['a','e'])

我收到此错误消息:

Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
counter.update(['a','e'])
ValueError: dictionary update sequence element #0 has length 1; 2 is required

1 个答案:

答案 0 :(得分:1)

counter不再是Counter,而是dict之后的json.loads。因此,您需要将其转换为Counter。然后,您可以使用其他Counter更新Counter

counter = Counter(json.loads(counterJson))
counter.update(Counter(["a", "e"]))
print counter

<强>输出

Counter({u'a': 4, u'b': 1, 'e': 1})