Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 如何从字典中为每个键编写多个值的csv文件?_Python_Csv_Dictionary_Arcgis - Fatal编程技术网

Python 如何从字典中为每个键编写多个值的csv文件?

Python 如何从字典中为每个键编写多个值的csv文件?,python,csv,dictionary,arcgis,Python,Csv,Dictionary,Arcgis,我最初将此问题作为另一个问题的一部分发布。我需要写一个csv文件,其中给出了技术人员的姓名、他们在拖拉机上工作的日期以及该日期拖拉机的数量。我已经找到了一种将所需数据输入字典的方法,键是技术人员的姓名,值是日期和计数,使用光标通过ArcMap查找数据,代码如下: desc = arcpy.Describe(inLayer) fields = desc.fields for field in fields: for srow in cursor: tech = srow.

我最初将此问题作为另一个问题的一部分发布。我需要写一个csv文件,其中给出了技术人员的姓名、他们在拖拉机上工作的日期以及该日期拖拉机的数量。我已经找到了一种将所需数据输入字典的方法,键是技术人员的姓名,值是日期和计数,使用光标通过ArcMap查找数据,代码如下:

desc = arcpy.Describe(inLayer)
fields =  desc.fields
for field in fields:
    for srow in cursor:
        tech = srow.getValue("Technician")
        ModDate = srow.getValue("ModifiedDate")
        FormDate = ModDate.strftime("%m-%d-%Y")
        if tech == "Elizabeth":
            EScontract = EScontract + 1
            ESList = []            
            ESList.append(FormDate)
            EStech.update(ESList)
            for date in EStech.iteritems():
                if tech in Listedtech:
                    Listedtech[tech].append(date)
                else:
                    Listedtech[tech] = [date]
其中,EStech是先前定义的计数器字典,Listedtech也是较早定义的空字典

Listedtech在打印时看起来像:

Listedtech = {u'Elizabeth': [('05-11-2015', 6), ('05-13-2015', 16), ('05-12-2015', 16)] , u'Michael': [('05-11-2015', 3)]}
如何将名为Listedtech的词典转换为csv文件

更新

我已经成功地将我的字典编入了一个名为nl的字典列表。当我打印字典列表时,会得到如下结果:

nl = [{u'Elizabeth': [('05-11-2015', 6), ('05-13-2015', 16), ('05-12-2015', 16)]} , {u'Michael': [('05-11-2015', 3)]}]
with open(csvfilename, 'w') as f:
    fieldnames = ['Elizabeth', 'Michael']
    dict_writer = csv.DictWriter(f, fieldnames = fieldnames)
    dict_writer.writeheader()
    dict_writer.writerows(nl)
但是,现在我在将其发送到csv时仍然遇到问题。当我做DictWriter时,结果很奇怪,每个技术人员都有自己的列,但只有一行有所有相关的值,所以csv文件看起来像这样

伊丽莎白|迈克尔
('05-11-2015',6),('05-13-2015',16),('05-12-2015',16)|('05-11-2015',3)

而不是像我希望的那样,每个值都在不同的行上。我使用的代码如下所示:

nl = [{u'Elizabeth': [('05-11-2015', 6), ('05-13-2015', 16), ('05-12-2015', 16)]} , {u'Michael': [('05-11-2015', 3)]}]
with open(csvfilename, 'w') as f:
    fieldnames = ['Elizabeth', 'Michael']
    dict_writer = csv.DictWriter(f, fieldnames = fieldnames)
    dict_writer.writeheader()
    dict_writer.writerows(nl)
我做错了什么?

你可以用。从文档中:


csv
模块将是开始。。。你查看过软件包了吗?我试图找出csv.DictWriter,但似乎无法让它打印任何内容。我不断地遇到不同的错误。我已经准备好了文档,但我不确定如何使其适用于此?你如何使用它,让它看一本已经形成的字典?啊,我明白了。你需要把它们分开。有办法吗?这将正常工作,但我不知道如何使它为此工作。您需要将列表字典转换为字典列表。我现在没时间回答,也许几个小时后。看看怎么回答。