Форум сайта python.su
Всем доброго вечера. Прохожу курс на Coursera и при выполнении одного из заданий столкнулся с проблемой, решить которую корректно не получается уже вот второй день.
Загружаю ключ-значение в файл .json. Записывается и читается. Однако при повторном вызове функции , значения просто перезаписываются.. Необходимо создать мини базу в json и обязательно с использованием созданного файла. И потом при каждом вызове файла передавать новые значения и они бы записывались . Звучит совсем не сложно, но проблема в том, что все перезаписывается…
Вот собственно код:
import json,os,tempfile,argparse
data = list()
storage_path = os.path.join(tempfile.gettempdir(), ‘storage.data’)
value = argparse.ArgumentParser()
value.add_argument('-k','–key')
value.add_argument('-v', ‘–val’)
storage = value.parse_args()
def join():
data1 = dict()
data.append(data1)
with open(storage_path,'w') as f:
f.write(str(data))
json.dump(data, open('storage.data', ‘w’))
print(json.load(open('storage.data', ‘r’)))
join()
Офлайн
Тут почитай за режимы…
Офлайн
Объясни поподробней пожалуйста.. я уже читал и не 1 раз
Офлайн
'w'- открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
'a' - открытие на дозапись, информация добавляется в конец файла.
Офлайн
Если вместо ‘w’ поставить ‘a’ выдает вот такая ошибка
RomissevdЕсли так сделать , Выдается ошибка
'w'- открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.'a' - открытие на дозапись, информация добавляется в конец файла.
Прикреплённый файлы: Безымянный.png (21,4 KБ)
Офлайн
>>> import simplejson as jsp >>> data = {1:1, 2:2, 3:3} >>> jsp.dump(data, open("/home/rodegast/baza.json", "w")) >>> data = jsp.load(open("/home/rodegast/baza.json")) >>> data {'1': 1, '3': 3, '2': 2} >>> data.update({4:4}) >>> jsp.dump(data, open("/home/rodegast/baza.json", "w"))
Отредактировано Rodegast (Окт. 31, 2017 22:42:38)
Офлайн
Rodegastубрал, не помогает
Офлайн