Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CSV解析器python中获取具有值的列_Python_Django - Fatal编程技术网

如何在CSV解析器python中获取具有值的列

如何在CSV解析器python中获取具有值的列,python,django,Python,Django,CSV解析器中的另一个问题。 我需要将年份及其对应的国家填充到sqlite数据库中的表中。我已经成功地缩小了范围,以便获得所有行的值(如果其中任何一行有值的话)。但在试图将()数据保存到数据库时,它会抛出ValueError:invalid literal for int(),以10为基数:',用于那些没有任何值的数据 if (row[12] or row[13] or row[14] or row[15] ) != "": country1 = re.m

CSV解析器中的另一个问题。 我需要将年份及其对应的国家填充到sqlite数据库中的表中。我已经成功地缩小了范围,以便获得所有行的值(如果其中任何一行有值的话)。但在试图将()数据保存到数据库时,它会抛出
ValueError:invalid literal for int(),以10为基数:'
,用于那些没有任何值的数据

if (row[12] or row[13] or row[14] or row[15] ) != "":
                    country1 = re.match(r'.*\((\w+)\)', header[12])
                    country2 = re.match(r'.*\((\w+)\)', header[13])
                    country3 = re.match(r'.*\((\w+)\)', header[14])
                    country4 = re.match(r'.*\((\w+)\)', header[15])
                    Yr.country = country1 
                    Yr.country = country2 
                    Yr.country = country3 
                    Yr.country = country4 
                    Yr.mol = MoleculeDictionary.objects.get(id=row[0])
                    Yr.year = row[12]
                    Yr.year = row[13]
                    Yr.year = row[14]
                    Yr.year = row[15]
                    #Yr.save()
                    print country1.group(1), row[12], country2.group(1), row[13], country3.group(1), row[14], country4.group(1), row[15]




Year (US),Year (Eur),Year (Jap), Yea(CHI),
    ,,,,,
    ,,,,,
    ,,,,,
    ,,2009,,,
    ,,1977,,,
    ,1982,1983,,,
打印报表打印

US  Eur 2009 Jap  CHI 
US  Eur 1977 Jap  CHI 
US 1982 Eur 1983 Jap  CHI 
但我更希望只得到每行中都有值的列,如何才能得到2009欧元、1977欧元、1982欧元和1983欧元。请忽略我的无能,因为我是python和Django新手。提前感谢所有建议


谢谢

我不知道你说的是什么意思

希望只获取每行中都有值的列

那么也许你可以指定你想要的输出

但是,如果您的csv为
test.csv
,则此脚本

import csv

with open('test.csv') as myfile:
    reader = csv.reader(myfile)
    header = []
    for row in reader:
        if header == []: # first row
            header = row
        else:
            for i in range(len(row)):
                if row[i] != '':
                    # calculate custom header
                    custom_header = header[i].split('(')[1].split(')')[0].upper()
                    print custom_header, row[i]
将打印

JAP 2009
JAP 1977
EUR 1982
JAP 1983
这是你想要的吗