2015-08-19 3 views
-2

У меня есть словарь словарей, в котором используются кортежи как его ключи и значения. Я хотел бы написать этот словарь и попробовать json и pickle, но ни один из них, похоже, не работает. Есть ли лучшая альтернатива?Сохранение вложенного словаря кортежей в python

https://github.com/jgv7/markov-generator/blob/master/sentence-generator.py

+2

Когда вы говорите «ни один из них не работает», можете ли вы описать, какие проблемы вы видели, точно? – psmears

+2

JSON и 'pickle' - очень популярные модули, которые работают нормально, пока вы их правильно используете. Если они «не работают», проблема кроется в другом месте. – TigerhawkT3

+4

Включите свой код в вопрос; не просто ссылку на код. И, особенно, не для кода, который изменится в следующий раз, когда есть фиксация (поскольку это просто указывает на «master»). – Cyphase

ответ

1

ожидает JSON ключа пары значения ключа быть строкой или число, которое может быть правильно преобразовано в строку. нижняя строка - не может сделать json.dumps на dict с кортежами в качестве ключей.

рассол должен работать, если объект словаря неправильно сериализуется.

+0

Спасибо, просветив меня! Как сказал BlackJack, я также неправильно использовал pickle, поэтому проблема теперь исправлена. –

+0

рад, что это сработало для вас. Казалось, что ты получаешь исключение. мое плохое предположение. ура !! –

0

Из кода:

with open(filename, 'rb') as df: 
    pickle.load(df) 
print mapping 

Вы не связываете результат load() вызова имя, так что линия не имеет никакого эффекта (кроме потребления процессорного времени и перемещения указателя файла). Это следует читать:

with open(filename, 'rb') as df: 
    mapping = pickle.load(df) 
print mapping 
+0

Спасибо, BlackJack! Это точно проблема. Это был мой первый раз с использованием pickle, и, конечно, код примера, который я использовал, был ошибочным. –

Смежные вопросы