将返回值从类对象写入csv文件

时间:2019-06-01 18:27:33

标签: python csv class object

我将一些json数据转换为csv数据,并使用类对象来构造数据。

我正在写对象时遇到的问题以writerow返回。如果我的类对象返回一个以上的值,那么它写得很好,但是如果我将该对象与一个仅返回一个值的对象组合,则会出现错误。 “错误:需要转义,但未设置转义符”。 只要我不合并对象返回的两个变体就可以了,但是将两者结合会产生上面的错误。

我尝试了其他方法,并且知道可以通过在如下时间在return上进行写操作来获得我想要的结果: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行数据。

0 个答案:

没有答案