我在一个类中逐行加载一个循环中的数据。我想将每一行添加到列表中。
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>]”
我是新手,还没有弄清楚如何克服这个问题。谢谢!
答案 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=' ')