Я новичок в python, вот первая часть моего дипломного проекта. Я хочу извлечь данные из операторов вставки MySql
if tableName == 'accounts':
a = Account(rm_apostrophe(slippedMsgs[0]), rm_apostrophe(slippedMsgs[1]),
rm_apostrophe(slippedMsgs[2]))
print(a.account_id, a.account_name, a.customer_code)
Accounts.append(a)
В приведенном выше коде Account
— это класс, используемый для сохранения данных, а rm_apostrophe
— метод для обработки строк.
class Account:
def __init__(self, account_id, account_name, customer_code):
self.account_id = account_id
self.account_name = account_name
self.customer_code = customer_code
def rm_apostrophe(raw_data):
if raw_data is None or raw_data == "Null":
return None
elif raw_data.startswith("'"):
return raw_data[1:-1]
else:
return raw_data
Account — это простой метод всего с тремя атрибутами, так что проблем с его записью нет.
Но у меня есть еще один класс с именем Ticket
с 73 атрибутами, что означает, что я должен сделать rm_apostrophe(slippedMsgs[x])
73 раза в
t = Ticket(rm_apostrophe(slippedMsgs[0]), rm_apostrophe(slippedMsgs[1]),
rm_apostrophe(slippedMsgs[2])...etc)
Я предполагаю, что должен быть более простой способ помочь мне передать эти параметры, возможно, мне нужно изменить конструктор. Надеюсь, кто-то может мне помочь, большое спасибо
Вы можете использовать понимание списка для создания списка аргументов:args = [rm_apostrophe(x) for x in slippedMsgs]
Затем вы можете передать эти аргументы, используя t = Ticket(*args)
* перед args
передает каждый элемент в списке в качестве аргумента Ticket
Если вам помог этот ответ, отметьте его как принятый.