2013-10-29 70 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,無]]