Моя цель - написать словарь для текста (чтобы мне не нужно было обращаться к базе данных), а затем сохраните информацию в текстовом файле как словарь. Это то, что я пробовал:Как написать словарь в текст, а затем прочитать текст в словаре в python
Чтобы написать словарь к тексту, я использовал
with open("match_histories.txt", "w") as text_file:
print("match_histories: {}".format(match_histories), file=text_file)
Это, казалось, работало хорошо, и мой текстовый файл выглядит следующим образом:
match_histories: {'28718115': {'matches': [{'matchVersion': '5.13.0.329', ...
Я хочу сохранить это как словарь, поэтому я пробовал:
match_histories = {}
f=open('match_histories.txt', 'r')
match_histories= eval(f.read())
Однако, когда я запустил его, я получаю сообщение об ошибке при попытке сохранить новую dictiona гу. Я получаю следующую ошибку:
Traceback (most recent call last):
File "C:\Python34\Main.py", line 87, in
main()
File "C:\Python34\Main.py", line 82, in main
new_dict = eval(f.read())
File "", line 1
Как сохранить информацию из моего текстового файла в качестве словаря в Python?
Редактировать: Благодаря namooth проблема в том, что мой текстовый файл не был в действительном словаре. Как я не могу записать имя моего словаря в файл?
Редактировать 2: Вау, все очень полезно! Я думаю, что у меня есть это сейчас.
Edit 3: Я попытался рассол дамп, который был предложен, но я получил эту ошибку:
Traceback (most recent call last):
File "C:\Python34\Main.py", line 88, in
main()
File "C:\Python34\Main.py", line 79, in main
match_histories=get_match_histories(challenger_Ids)
File "C:\Python34\Main.py", line 47, in get_match_histories
pickle.dump(match_histories, "match_histories.txt")
TypeError: file must have a 'write' attribute
пишут:
pickle.dump(match_histories, "match_histories.txt")
чтения:
match_histories = pickle.load("match_histories.txt")
ли я до сих пор нужна строка, открывающая файл? Как исправить эту ошибку?
Каков полный трасчёт, который вы получаете? – Leb