Json в базу данных без перезаписи предыдущих данных в базе данных sqlalchemy - PullRequest
0 голосов
/ 04 февраля 2020

Я довольно новичок в sqlalchemy, однако у меня есть файл json, который я выгружаю в базу данных, и я не хочу перезаписывать существующие данные в базе данных, я просто хочу, чтобы он добавлялся в базу данных

ниже мой код, который сбрасывает данные в базу данных

with open('questions.json') as f:
                    final_question_data=f.read()
                    jsondata=json.loads(final_question_data)
                for item in range(len(jsondata)): 
                    r = Question(id=int(jsondata[item]['id']), question=jsondata[item]['question'], option1=jsondata[item]['option1'],
                    option2=jsondata[item]['option2'], option3=jsondata[item]['option3'], option4=jsondata[item]['option4'],
                    correct_option=jsondata[item]['correct_option'], exam_id=jsondata[item]['exam_id'])
                    db.session.add(r)
                db.session.commit() 

1 Ответ

1 голос
/ 04 февраля 2020

Проблема, с которой вы сталкиваетесь, может быть связана с тем, что вы задаете «id» в своем объекте Question. Идентификаторы обычно используются, чтобы определить, какая строка затронута в вашей базе данных - если Объект использует идентификатор, который уже находится в БД, он перезапишет эту строку.

Вам не нужно указывать идентификатор, он должен автоматически увеличивать и «добавлять» новую строку в конце вашей базы данных - если ваша таблица настроена правильно.

...