Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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中的另一个csv文件时出现的问题_Python_Csv_Dictionary_Defaultdict - Fatal编程技术网

将csv文件数据转换为字典,然后将该字典写入python中的另一个csv文件时出现的问题

将csv文件数据转换为字典,然后将该字典写入python中的另一个csv文件时出现的问题,python,csv,dictionary,defaultdict,Python,Csv,Dictionary,Defaultdict,我有一个csv文件file1.csv,其中包含以下示例数据: state,year,value Alabama,2012,8.03333333333 Alabama,2012,8.16666666667 Alabama,2012,8.06666666667 Alabama,2012,7.7 Alabama,2013,7.36666666667 Alabama,2013,7.0 Alabama,2013,7.0 Alabama,2013,7.13333333333 Alabama,2014,7.2

我有一个csv文件file1.csv,其中包含以下示例数据:

state,year,value
Alabama,2012,8.03333333333
Alabama,2012,8.16666666667
Alabama,2012,8.06666666667
Alabama,2012,7.7
Alabama,2013,7.36666666667
Alabama,2013,7.0
Alabama,2013,7.0
Alabama,2013,7.13333333333
Alabama,2014,7.2
Alabama,2014,6.93333333333
Alabama,2014,6.46666666667
Alabama,2014,6.13333333333
Alaska,2012,7.33333333333
Alaska,2012,7.16666666667
Alaska,2012,7.06666666667
现在我想要的是每个状态有一条记录,该状态的所有值都在一行中,然后将结果写入一个新的csv文件。所以我想要的输出是这样的:

Alabama,8.0,8.1,8.0,7.7,7.3,7.0,7.0
Alaska,8.1,8.1,8.0,7.4,7.25,7.6,7.5
我编写了这段代码,其中我从输入csv文件中的记录中形成了一个
defaultdict
,然后将该字典写入输出csv文件,但当我将其写入输出文件时,输出文件中的值被
[]
并且每个值本身都被
包围”
。因此,电流输出如下所示:

Indiana,"['8.4', '8.2', '8.2', '8.33333333333', '8.3', '7.8', '7.2', '6.53333333333', '6.1', '5.96666666667', '5.8', '5.86666666667']"
Maryland,"['6.9', '6.9', '6.86666666667', '6.8', '6.76666666667', '6.63333333333', '6.43333333333', '6.2', '5.96666666667', '5.83333333333', '5.7', '5.53333333333']" 
我目前的代码是:

file_write = open('output.csv', 'w')
    writer = csv.writer(file_write)
    with open('file1.csv', 'r') as handle:
        reader = csv.DictReader(handle, ['state', 'year', 'value'])
        data = defaultdict(list)

        for line in reader:
            data[line['state']].append(line['value'])

    for key, value in data.items():
        print key
        print value
        writer.writerow([key, value])

如何更正输出格式?

要解决您的问题,您应该更换

writer.writerow([key, value])

正如Mathias Ettinger在评论中写道的那样。
当你写作时

[key, value]
创建一个包含两个元素的列表。第一个元素
对象和第二个元素嵌套列表


您需要创建一个由
key
value
列表中的所有元素组成的列表。

writer.writerow([key]+value)
?print“,”。join(value)writerow([key,,”。join(value)])@Omar您的代码将写入两个元素的文件列表-
对象和从
列表的值创建的str。输出类似于阿拉斯加的“7.33333333,7.1666667,7.066666667”
[key, value]