Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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
Python 为什么不是';我的代码里没有写东西的人?_Python_Csv - Fatal编程技术网

Python 为什么不是';我的代码里没有写东西的人?

Python 为什么不是';我的代码里没有写东西的人?,python,csv,Python,Csv,使用internet上的一些帮助,我构造了一个通用函数,该函数从csv文件中提取特定列,并将其读入由输入键指定的字典 import csv def dict_filter(it, keys): for d in it: yield dict((k, d[k]) for k in keys) 然后我稍后调用此方法,使用DictReader和DictWriter将这些列写入另一个CSV文件: fieldnames = ["_STATE", "HEIGHT", "WEIGHT

使用internet上的一些帮助,我构造了一个通用函数,该函数从csv文件中提取特定列,并将其读入由输入键指定的字典

import csv
def dict_filter(it, keys):
    for d in it:
        yield dict((k, d[k]) for k in keys)
然后我稍后调用此方法,使用
DictReader
DictWriter
将这些列写入另一个CSV文件:

fieldnames = ["_STATE", "HEIGHT", "WEIGHT", "_BMI", "AGE", "CTYCODE", "IYEAR"]
source = open("data88.csv", 'r')
reader = csv.DictReader(source) 
result = open("aggregate_data.csv", 'w') 
writer = csv.DictWriter(result, fieldnames, extrasaction='ignore') 
for d in dict_filter(reader, fieldnames):
    if d['_STATE'] == "17" : 
         writer.writerow(str(d))
以下是我在终端中遇到的错误:

AttributeError: 'str' object has no attribute 'get' 
在TextWrangler中:

Traceback (most recent call last): writer.writerow(str(d))
我在互联网上到处找了找,没有找到任何缓解的办法。为什么
writerow
无法处理我的DictWriter实例

换行

writer.writerow(str(d))


这就是全部错误?真令人惊讶。后面没有一行吗?是的,我在TextWrangler中运行它,后面没有一行。这个编辑解释了很多。尝试将行更改为
writer.writerow(d)
。不客气。我将此作为答案发布,以便您可以接受。
writer.writerow(d)