【发布时间】:2015-07-24 01:57:54
【问题描述】:
所以我遇到了问题。我正在尝试创建一个脚本来查看 ArcMap 中的图层(我们使用 10.2.2)创建一个 csv 文件,该文件的最终输出将包含技术人员的姓名和他们在特定日期查看的区域数量.为此,我认为我需要创建一个特定于每个技术人员的字典,并将日期作为键,将出现的次数作为值。
这就是我卡住的地方。如何创建一个统计日期出现次数的字典?
到目前为止,我已经包含了我的代码,但我不知道该去哪里,或者我什至在正确的轨道上。此外,我不确定如何使用我需要的所有三列(名称、日期、计数)制作 csv 文件。
import arcpy, datetime
from arcpy import mapping
from datetime import datetime
# pass layer to script
mxd = mapping.MapDocument("C:\\Users\\eschlueter\\Desktop\\test\\test.mxd")
layers = mapping.ListLayers(mxd)
inLayer = layers[0]
csvfilename = "C:\\Users\\eschlueter\\Desktop\\test\\test1.csv"
# Create the search cursor
cursor = arcpy.SearchCursor(inLayer)
##define a dictionary of every technician
elizabethtech = {}
unknowntech = {}
##create a counter for each technician's contracts
Elizabethcontract = 0
Unknowncontract = 0
##Define Variables and Iterate through the rows in cursor
desc = arcpy.Describe(inLayer)
fields = desc.fields
for field in fields:
for srow in cursor:
tech = srow.getValue("Technician")
ModDate = srow.getValue("ModifiedDate")
if tech == "Elizabeth Schlueter":
Elizabethcontract = Elizabethcontract + 1
ESList = []
ES = {}
FormDate = ModDate.strftime("%m-%d-%Y")
print FormDate
ESList.append(FormDate)
c = ESList.count(FormDate)
ES[FormDate] = c
print ES
我真的可以在这方面使用一些帮助!谢谢你们提前帮助我!
更新
我已经能够使用 Counter 和 .update 方法创建字典,并创建了所有技术人员的主列表作为键,值是(日期,计数)。我现在如何获取这本字典并打印一个 csv 文件?我希望文件包含技术人员姓名、日期和日期计数。这可能吗?
【问题讨论】:
-
嗨,伊丽莎白,欢迎来到 stackoverflow!您可以通过将示例代码减少到重现问题所需的最低限度来改进您的问题。请在帮助中心阅读“How to create a Minimal, Complete, and Verifiable example”。另外,看看PEP8,python 程序员对命名和格式约定非常敏感。