将类记录追加到列表中



>我用循环逐行加载类中的一行数据。 我想将每一行附加到列表中。

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>主要。0x0C11BFB0>处的 biz 对象,<<strong>main。商业对象在0x00BDED50>]">

我是新手,还没有想出如何克服这个问题。 谢谢!

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

# 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=' ')

最新更新