Запись возвращаемых значений из объектов класса в csv-файл - PullRequest
0 голосов
/ 01 июня 2019

Я конвертирую некоторые данные JSON в данные CSV и использую объекты классов для структурирования данных.

Проблема, с которой я сталкиваюсь, - это запись объекта, возвращаемого с writerow. Если мои объекты класса возвращают более одного значения, они пишут просто отлично, но если я объединяю этот объект с объектом, который возвращает только одно значение, я получаю ошибку. Msgstr "Ошибка: нужно убежать, но не задан escape-символ". Пока я не объединяю два варианта возврата объекта, он пишет просто отлично, но объединение двух приведет к ошибке, описанной выше.

Я пробовал другие способы и знаю, что могу получить желаемый результат, написав по возвращению в такое время: class (). Object () [i], но должен быть более элегантный способ Делать это. Когда просто пишется объект, который возвращает несколько значений, он делает то, что я хочу, но до тех пор, пока я пытаюсь объединить его с объектом, который возвращает только одно значение, возникает ошибка. Я также попытался объединить результат обоих объектов в списке, но это оставляет меня с другой проблемой, круглые скобки вокруг каждого возврата объекта будут записаны в файл. Попытался найти способ записи в одну и ту же строку CSV-файла в два этапа, но не смог.

class nlLifter():

    def __init__(self):

        pass


    def name(self,index):

        name=(nl_obj['lifters'][index]['name'])
        self.fullname=name
        name=name.split( )
        self.firstname=name[0]
        self.lastname=name[-1]
        return (self.firstname,self.lastname)


    def team(self,index):
        self.team=nl_obj['lifters'][index]['team']
        return(self.team)

nlLifter().team(0)

with open(filepath+'csvFileName'+str(0)+'.csv','w',newline='') as csvfile:
    csvwriter=csv.writer(csvfile,delimiter=',',
                         quotechar='', quoting=csv.QUOTE_NONE)
    csvwriter.writerow(['Heading1','Heading2'])
    csvwriter.writerow([
        [nlLifter().team(0)],
        [nlLifter().name(0)]
    ])

Результат, который я пытаюсь получить, состоит в том, чтобы объединить имя двух объектов и команду для записи в одну строку в файле CSV. Крайне важно, чтобы CSV-файл имел только 2 строки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...