【问题标题】:Converting an array of arrays into a class array in Python在Python中将数组数组转换为类数组
【发布时间】: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

标签: python arrays class


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2018-01-03
    • 2022-11-14
    • 2017-02-11
    相关资源
    最近更新 更多