gpt4 book ai didi

Python:使用列表列表读取CSV文件的字段

转载 作者:太空狗 更新时间:2023-10-30 02:21:17 29 4
gpt4 key购买 nike

我只是想知道如何从具有下一个结构的 CVS 文件中读取特殊字段:

40.0070222,116.2968604,2008-10-28,[["route"], ["sublocality","political"]]
39.9759505,116.3272935,2008-10-29,[["route"], ["establishment"], ["sublocality", "political"]]

我过去使用的阅读 cvs 文件的方式:

with open('routes/stayedStoppoints', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')

问题是我可以使用的前 3 个字段没问题:

for row in spamreader:

row[0],row[1],row[2] 我可以毫无问题地访问。但在最后一个字段中,我猜 csv.reader(csvfile, delimiter=',', quotechar='"') 也为每个子列表拆分:

所以当我尝试访问时,请告诉我:

[["route"] 

任何人都有处理最后一个字段的解决方案有一个完整的列表(确实是列表的列表)

[["route"], ["sublocality","political"]]

为了可以访问每个类别。

谢谢

最佳答案

你的格式接近json。您只需要将每一行括在方括号中,并引用日期。对于每一行 l 只做:

lst=json.loads(re.sub('([0-9]+-[0-9]+-[0-9]+)',r'"\1"','[%s]'%(l)))

导致 lst 成为

[40.0070222, 116.2968604, u'2008-10-28', [[u'route'], [u'sublocality', u'political']]]

需要导入json解析器和正则表达式

import json
import re

edit:您询问了如何访问包含“route”的元素。答案是

lst[3][0][0]

'政治'在

lst[3][1][1]

如果字符串('political' 和其他)可能包含看起来像日期的字符串,您应该使用@unutbu 的解决方案

关于Python:使用列表列表读取CSV文件的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17136199/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com