如何解决如何遍历字典以获取存储在Sqlalchemy表中的数据?
我有一本叫做self.structure = {0:“ xyz.php”}的字典。我想将其存储到由列(arm_id和page_url)组成的数据库表结构中。如何使用for循环将其保存到数据库表中?请帮助,因为我是编程新手。 这是我的代码:
def init(self):
self.lista["counter"] = 0
self.lista["conversion"] = 0
# Default page
# for self.structure in Structure.query.all():
# print(self.structure.__dict__)
self.structure = {0: "xyz.php"}
struct = Structure.query.all()
for i in struct:
struct.self.structure.append(i)
print("-------------",len(struct))
这是我的结构表的代码。
class Structure(db.Model):
__tablename__ = 'structure'
arm_id = db.Column(db.Integer,primary_key=True)
page_url = db.Column(db.String())
def __init__(self,arm_id,page_url):
self.arm_id = arm_id
self.page_url = page_url
我尝试使用上述的forloop,但是它没有将数据存储在数据库中。.请告诉我我出了什么问题。谢谢。
解决方法
请确保遍历self.structure
字典而不是查询的struct
列表:
for arm_id in self.structure: # this is 0,1,2...
new_structure = Structure(arm_id=arm_id,page_url=self.structure[arm_id])
db.session.add(new_structure)
db.session.commit()
或等效地:
for arm_id,page_url in self.structure.items():
new_structure = Structure(arm_id=arm_id,page_url=page_url)
db.session.add(new_structure)
db.session.commit()
提交的目的是确保保存的更改确实生效。
另外,如果您不在其他地方使用它们,请不要将它们存储到self.
中,而应使用structure
而不是self.structure
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。