У меня есть скрипт Python, который обрабатывает файл .txt, который содержит информацию об использовании отчета. Я хотел бы найти способ чистой печати атрибутов объекта с помощью функции pprint pprint (vars (object)).
Скрипт читает файл и создает экземпляры класса Report. Вот класс.
class Report(object):
def __init__(self, line, headers):
self.date_added=get_column_by_header(line,headers,"Date Added")
self.user=get_column_by_header(line,headers,"Login ID")
self.report=get_column_by_header(line,headers,"Search/Report Description")
self.price=get_column_by_header(line,headers,"Price")
self.retail_price=get_column_by_header(line,headers,"Retail Price")
def __str__(self):
from pprint import pprint
return str(pprint(vars(self)))
Я бы хотел иметь возможность печатать экземпляры отчета без ошибок.
for i,line in enumerate(open(path+file_1,'r')):
line=line.strip().split("|")
if i==0:
headers=line
if i==1:
record=Report(line,headers)
print record
Когда я звоню
print record
для одного экземпляра Report, это то, что я получаю в оболочке.
{'date_added': '1/3/2012 14:06',
'price': '0',
'report': 'some_report',
'retail_price': '0.25',
'user': 'some_username'}
None
У меня вопрос двоякий.
Во-первых, это хороший / желаемый способ чистой печати атрибутов объекта? Есть ли лучший способ сделать это с или без pprint?
Во-вторых, почему
None
печатать на оболочку в конце? Я запутался, откуда это.
Спасибо за любые советы.