2015-11-11 2 views
-5

Здравствуйте, у меня есть следующее;Как извлечь значения из кортежа в Python?

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)) 

, что вернуть все целые числа, которые присутствуют в А, но в этом случае я потеряю информацию о формате даты. Любое предложение?

+0

Я полагаю, что первый вопрос: откуда вы взяли формат, в первую очередь, и могли бы вы иметь что-то более полезное вместо этого? – jonrsharpe

+0

Я не понял ваш вопрос. Я хотел бы извлечь все значения между запятыми, сохраняя формат даты последних двух записей. – emax

+0

Мой вопрос: почему вы пытаетесь разобрать это? ** Кажется, у вас есть строковая форма некоторых объектов Python - откуда она взялась? Можете ли вы получить фактические объекты? Или организовать более удобный формат? Какова цель этой задачи? Кроме того, обратите внимание, что ваш заголовок не имеет смысла. – jonrsharpe

ответ

0

Как уже было сказано, 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 

В этом случае нет необходимости сначала попробовать и извлечь все записи. Если вам нужен более тонкий контроль над форматом даты, это можно легко добавить. Здесь он использует преобразование по умолчанию в строковый формат.

Он все же предполагает, что вы хотите вывести все поля.

Смежные вопросы