2013-10-29 39 views
0

我有以下元组,我需要将它转换为日期和货币(或浮动如果货币的代码太冗长)。我不熟悉任何可以完成这项工作的软件包。元组字符串到日期和浮点数或货币的pythonic转换

你可以建议一个pythonic转换方式吗?非常感谢!

inc_data =[(u'Dec 31, 2012', u'104,507,100\n', u'56,000,000\n'), 
      (u'Dec 31, 2011', u'106,916,100\n', u''), 
      (u'Dec 31, 2010', u'99,870,100\n', u'')] 

我希望能得到以下结果:

inc_data2=[(2012-12-31, 104507100.00, 56000000.00), 
      (2011-12-31, 106916100.00, None), 
      (2010-12-31, 99870100.00, None)] 

我可以用datetime.strptime( 'DATE_STRING')转换成单变量日期(),同样地,字符串使用

浮动
num_string = u'100' 
num = float(num_string) 

但我不知道如何将值存储在元组中时进行转换。另外,我不知道python如何处理null,所以我使用'None'作为结果。顺便说一句,我实际上有大约40列在日期的第一列。

+1

你是指将它转换为日期和货币的含义?你能给出一个期望的输出的例子 – jramirez

+0

我希望上面提到的结果。 对不起,我不知道如何格式化评论来插入代码。所以我会修改这个问题。 – vt2424253

回答

0

转换为datetime对象

from datetime import datetime 

inc_data2 = [] 

for tupleValues in inc_data: 
    date = tupleValues[0].replace(',', '') 
    date_object = datetime.strptime(date, '%b %d %Y') 
    print date_object 

    currency1 = float(tupleValues[1].replace(',','')) 

    if len(tupleValues[2]) >= 1: 
     currency2 = float(tupleValues[2].replace(',','')) 
    else: 
     currency2 = None 

    tempList = [] 
    tempList.append(str(date_object)) 
    tempList.append(currency1) 
    tempList.append(currency2) 

    inc_data2.append(tempList) 

这里是输出 [[ '2012-12-31 00:00:00',104507100.0,56000000.0],['2011-12-31 00: 00:00',106916100.0,无],['2010-12-31 00:00:00',99870100.0,无]]