将班级记录追加到列表中

时间:2019-09-29 17:45:47

标签: python list class

我在一个类中逐行加载一个循环中的数据。我想将每一行添加到列表中。

class Biz:
def __init__(self, dba_name, legal_name):
    self.dba_name = dba_name
    self.legal_name = legal_name

MasterList = []

File_From_Excel = pd.read_excel('C:\file.xlsx')

for index, row in File_From_Excel.iterrows():
    record = Biz(row['Field 1'], row['Field 2'])
    MasterList.append(record)
    print(MasterList)

当我运行这样的代码时,我没有收到错误,但得到的信息如下: “ [[<< strong>主要 .Biz对象位于0x0C11BFB0>,<< strong>主要 .Biz对象位于0x00BDED50>]”

我是新手,还没有弄清楚如何克服这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

您正在打印类实例的列表,因此输出是它们的内存地址。您可能想要的是这些实例的属性。可以通过以下方式实现(出于说明目的):

# this goes at the end of your code, outside of the loop!
print([[record.dba_name, record.legal_name] for record in MasterList])

这种方法绝不是最佳方法,如果MasterList中有很多元素,则会给您带来内存问题。在这种情况下,您可能要使用生成器或类迭代器。

编辑:考虑一下,这里不需要生成器,因为简单的for循环可以遍历列表:

for record in MasterList:
  print([record.dba_name, record.legal_name], end=' ')