JSON
{“users”:[{“username”:“userxyz”,“id”:4,“email”:“xyz@gmail.com”,“events”:[{“event_name”:“vday”} ,{“event_name”:“bday”}]}]}
DB
class User(db.Model):
id= db.Column(db.Integer, primary_key=True)
username= db.Column(db.String(80), unique=True, nullable=False)
email= db.Column(db.String(120), unique=True, nullable=False)
events= db.relationship('Event', backref='user')
class Event(db.Model):
id = db.Column(db.Integer, primary_key=True)
event_name = db.Column(db.String(200), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
架构
class UserSchema(ma.ModelSchema):
events = fields.Nested('EventSchema', many=True)
class Meta:
model = User
class EventSchema(ma.ModelSchema):
class Meta:
model = Event
exclude = ('id', 'user_id', 'user')
答案 0 :(得分:0)
有这个东西json.dumps(values)你可以使用它来转储数据。这会将你的json对象转换为json字符串,以便你可以将它插入到数据库的文本字段中。 看看这个链接json
答案 1 :(得分:0)
首先,您需要导入json文件:
import json
from pandas.io.json import json_normalize
with open("json_file_path_goes_here") as f:
data = json.load(f)
# data = {"users": [{"username": "userxyz",
# "id": 4,
# "email": "xyz@gmail.com",
# "events": [{"event_name": "vday"},
# {"event_name": "bday"}]
# }]
# }
然后,您可以使用json_normalize以结构化格式获取它:
df = json_normalize(data["users"], "events", ["email", "id", "username"]).set_index('id')
# event_name email username
# id
# 4 vday xyz@gmail.com userxyz
# 4 bday xyz@gmail.com userxyz
从该数据框中可以轻松地将条目添加到数据库中:
df.to_sql('User', engine, if_exists='append')