繁体   English   中英

如何使用python更改从csv调用的返回数据格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM