如何将JSON结果插入数据库?

时间:2019-03-27 16:46:58

标签: python rest flask flask-sqlalchemy flask-restplus

我正在使用Flask-RESTPlus构建一个简单的REST,以从其特定用户名中获取所有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()

0 个答案:

没有答案