如何在Python中从元组中提取值?
你好,我有以下内容如何在Python中从元组中提取值?,python,regex,datetime,Python,Regex,Datetime,你好,我有以下内容 A = ((248500353L, 11, '4', '248741302', 633, 7321L, 7321L, 'EAD4083003', 0, datetime.datetime(2011, 4, 19, 23, 0, 42), datetime.datetime(2011, 4, 19, 23, 1, 39)),) 我想提取逗号之间的所有值,并保留日期格式。我现在做的是: An = re.findall(r'\d+', s
A =
((248500353L,
11,
'4',
'248741302',
633,
7321L,
7321L,
'EAD4083003',
0,
datetime.datetime(2011, 4, 19, 23, 0, 42),
datetime.datetime(2011, 4, 19, 23, 1, 39)),)
我想提取逗号之间的所有值,并保留日期格式。我现在做的是:
An = re.findall(r'\d+', str(A))
返回A中存在的所有整数,但通过这种方式,我丢失了有关日期格式的信息。有什么建议吗?如前所述,
A
已经是一个Python元组,不需要首先将其转换为字符串并尝试使用正则表达式进行解析
如果试图将此数据写入CSV文件,则可以按如下方式直接写入元组:
import datetime
import csv
A = ((248500353L,
11,
'4',
'248741302',
633,
7321L,
7321L,
'EAD4083003',
0,
datetime.datetime(2011, 4, 19, 23, 0, 42),
datetime.datetime(2011, 4, 19, 23, 1, 39)),)
with open('output.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)
csv_output.writerow(A[0])
这将为您提供一个如下所示的输出文件:
248500353,11,4,248741302,633,7321,7321,EAD4083003,0,2011-04-19 23:00:42,2011-04-19 23:01:39
在这种情况下,无需首先尝试提取所有条目。如果您需要对日期格式进行更好的控制,那么可以很容易地添加它。在这里,它使用默认的字符串格式转换
不过,它确实假设您希望输出所有字段。我想第一个问题是您从哪里获得格式的,您能有更有用的内容吗?我不理解您的问题。我想提取逗号之间的所有值,保留最后两个条目的日期格式。我的问题是,你为什么要解析它?您似乎拥有一些Python对象的字符串形式——它来自哪里?你能得到真实的物体吗?还是安排一种更容易解析的格式?这项任务的目的是什么?另外,请注意你的标题是没有意义的。这看起来像一个包含完全可用的数据元组的单元素元组。您知道如何索引或解包元组吗?源数据文本(或包含文本的文件)是否采用这种格式?