【发布时间】:2020-05-09 07:38:16
【问题描述】:
我知道这是一个基本问题,但我是 Python 新手,似乎无法找到答案。假设我的数据库中有一个用户,其中包含以下字段:姓名、姓氏、年龄。我在 Python 中创建了一个用户类:
class User:
def __init__(self, array):
self.name = array[0]
self.surname = array[1]
self.age = array[2]
当我访问我的数据库并调用用户时,我得到了数组数组。
def get_users():
cursor.execute("SELECT * FROM `users`")
return cursor.fetchall() #returns [[],[],[],[]...]
将数组中的每个数组都放入类中的最简单方法是什么?
[User, User,User,User,...]
(所以当我迭代将元素放入 for 循环时,我可以调用 user.name 而不是 user[0])是否有一个函数可以解决这个问题,或者我应该把数组中的每一个元素都扔掉,然后将其转换为类对象?
【问题讨论】:
-
你能发布你从db获取的用户数据吗
-
它将在以下行中的某个位置:[ ["James","Jenkinson", 23],["Alice","Madison",25]....]
-
你迭代结果。为每个元素创建一个新用户
u = User( elem )并将其添加到包含所有用户的列表中。如果您有唯一标识符,则可以使用 dict 代替将它们添加到其中,以便以后快速查找它们。 -
也许可以看看自动为您完成任务的 orm 映射器:fullstackpython.com/object-relational-mappers-orms.html