在Python中将数组的数组转换为类数组

我知道这是一个基本问题,但是我是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]。)是否存在该函数,或者我应该只将数组中的每个元素都扔掉并将其转换为类对象?

评论
北极想你
北极想你
x = [ ["James","Jenkinson", 23],["Alice","Madison",25]]
class User:
    def __init__(self, array):
        self.name = array[0]
        self.surname = array[1]
        self.age = array[2]
for i in range(len(x)):
  temp = x.pop(0)
  user = User(temp)
  x.append(user)

print(x)

for val in x:
  print(val.name)
点赞
评论
amodi
amodi

Using map()

res =  [ ["James","Jenkinson", 23],["Alice","Madison",25]]
x = list(map(User, res))
for user in x:
    print(user.name,user.surname, user.age)

输出:

James Jenkinson 23
Alice Madison 25
点赞
评论