Как вставить результат JSON в базу данных? - PullRequest
1 голос
/ 27 марта 2019

Я создаю простой REST с использованием Flask-RESTPlus для получения всех пользовательских данных GitHub от их конкретного имени пользователя.

Я получил результат в формате JSON.Но теперь я хочу вставить результат в свою базу данных.

Я объявил столбцы моей модели с тем же именем и ключом в результате JSON.Вот фрагмент моей модели:

class User(db.Model):
    __tablename__ = "user_v2"
    id = db.Column(db.Integer, primary_key=True, index=True)
    login = db.Column(db.String, unique=True, index=True)
    node_id = db.Column(db.String)
    avatar_url = db.Column(db.String)

и, скажем, результат от API был таким:

{
    "login": "trinanda",
    "id": 25479663,
    "node_id": "MDQ6VXNlcjI1NDc5NjYz",
    "avatar_url": "https://avatars2.githubusercontent.com/u/25479663?v=4"
}

Есть ключ на результат был такой же с моим именем столбцовс моими моделями.

Я пытался вставить результат с этим кодом, но меня смущает то, что он дает мне нулевое значение во всех моих пользовательских столбцах.

class UserResource(Resource):

    def post(self):
        schema = UserSchema()
        github_field = request.json
        username = github_field.get('username')

        github_user_data = get_github_user_data(username)

        user = User(**github_user_data)

        try:
           db.session.add(user)
           db.session.commit()
        except Exception as e:
           return str(e)

        return {
             'status': 'success',
             'user': schema.dump(user).data
        }

Итак ...Суть моих вопросов в том, как вставить результат JSON в базу данных ..?

РЕДАКТИРОВАТЬ: Вот мой github_user_data:

import requests
github_scraper_url = 'https://api.github.com/users/'
def get_github_user_data(username):
    response = requests.get(github_scraper_url+username)
    return response.json()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...