2013-11-20 6 views
1

Я хочу преобразовать счетчик в объект Json, чтобы сохранить этот счетчик в базе данных. Проблема заключается в том, когда я декодировать объект JSON, я не могу обновить свой счетчик больше:закодировать счетчик на объект 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

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}) 
Смежные вопросы