我有一个像这样的JSON清单:

print(type(listed)) # <class 'list'>
print (listed)

[
   {
       "email": "x@gmail.com",
       "fullname": "xg gf",
       "points": 5,
       "image_url", "https://imgur.com/random.pmg"
   },
   {
        ... similar json for the next user and so on
   }
]


我正在尝试将它们插入具有以下模型的postgres数据库中:

class Users(db.Model):
    __tablename__ = 'users'

    email = db.Column(db.String(), primary_key=True)
    displayName = db.Column(db.String())
    image = db.Column(db.String())
    points = db.Column(db.Integer())


但是我很困惑,我尝试了几种方法,但是都没有奏效,任何人都可以通过示例指导我如何正确地做到这一点?

最佳答案

这是一个示例json列表,就像您提供的一样。

json = [
   {
       "email": "x@gmail.com",
       "fullname": "xg gf",
       "points": 5,
       "image_url": "https://imgur.com/random.pmg"
   },
    {
       "email": "onur@gmail.com",
       "fullname": "o g",
       "points": 7,
       "image_url": "https://imgur.com/random_x.pmg"
   }
]


现在创建一个空的数据框all_df并在json列表中运行迭代。
每次迭代都会使用列表中来自字典的数据创建一个数据框,将其转置并附加到all_df

import pandas as pd

all_df = pd.DataFrame()
for i in json:
    df = pd.DataFrame.from_dict(data=i, orient='index').T
    all_df = all_df.append(df)


输出:
python - SQLAlchemy从JSON列表插入数据库-LMLPHP

现在,您可以继续创建数据库会话,然后按all_df

all_df.to_sql(con=your_session.bind, name='your_table_name', if_exists='your_preferred_method', index=False)

关于python - SQLAlchemy从JSON列表插入数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60261701/

10-12 15:22
查看更多