[英]How to Alter returned data format called from csv using python
我正在寻找有关csv文件中返回结果格式的指南。 到目前为止,我必须编写的代码部分地实现了我的目标,但是尽管通过此站点以及许多其他站点/论坛进行了大量的研究,但我仍无法解决最后一步。 我也在gis.stackexchange上提出了这个问题,但被重定向到该论坛,并带有“与通用信息技术有关的问题,没有明确的GIS组件,但不在此处,但可以在Stack Overflow上进行研究/提问” 。
我下面成功的python代码是从CSV读取选定数据并以dict格式返回的; (是的,我知道它返回为dict类型的原因是由于我的代码正在调用的格式!!!这就是问题的症结所在)
import arcpy, csv
Att_Dict ={}
with open ("C:/Data/Code/Python/Library/Peter/123.csv") as f:
reader = csv.DictReader(f)
for row in reader:
if row['Status']=='Keep':
Att_Dict.update({row['book_id']:row['book_ref']})
print Att_Dict
Att_Dict = {'7643': '7625', '9644': '2289', '4406': '4443', '7588': '9681', '2252': '7947'}
要运行我的代码的下一部分,我需要上面的结果,但格式为; (这是一个很长的代码的一部分,但是唯一的显示限制是返回的格式,因此在发布其他200行左右时价值不大)
Att_Dict = [[7643, 7625], [9644, 2289], [4406, 4443], [7588, 9681], [2252, 7947]]
尽管我进行了无休止的尝试,并且可以通过恢复为csv.Reader而不是csv.DictReader来实现这一目标,但是我仍然无法“清除”其中“状态”列中值为“保留”的行,而这对于手头的任务。
迄今为止,我的大锤方法是在Idle中使用“搜索并替换”来将返回的集修改为满足其他要求,但我确信可以通过编程而不是手动完成。 与https://docs.python.org/2/library/index.html相似但不完全相同,此外还有我在将多个CSV列中的值返回到Python字典中的启动问题? 并使用Python的csv.dictreader搜索特定键,然后在geonet.esri上打印其值以及大量基于csv的问题。
(使用Win 7,ArcGIS 10.2,Python 2.7.5)
尝试这个
Att_Dict = {'7643': '7625', '9644': '2289', '4406': '4443', '7588': '9681', '2252': '7947'}
Att_List = []
for key, value in Att_Dict.items():
Att_List.append([int(key), int(value)])
print Att_List
Out: [[7643, 7625], [9644, 2289], [4406, 4443], [7588, 9681], [2252, 7947]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.