我有一个像这样的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)
输出:
现在,您可以继续创建数据库会话,然后按
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/