【问题标题】:pythonic conversion of tuple string to date and float or currency元组字符串到日期和浮点数或货币的pythonic转换
【发布时间】:2013-10-29 23:40:10
【问题描述】:

我有以下元组,我需要将其转换为日期和货币(如果货币代码过于冗长,则为浮点数)。我不熟悉任何可以完成这项工作的软件包。

你能推荐一种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').date() 转换单个变量,同样,使用

将字符串转换为浮点数
num_string = u'100'
num = float(num_string)

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

【问题讨论】:

  • 将其转换为日期和货币是什么意思?你能举一个期望输出的例子吗
  • 我希望得到上述结果。抱歉,我不知道如何格式化评论以插入代码。所以我会修改这个问题。

标签: python type-conversion tuples


【解决方案1】:

转换为日期时间对象

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, 无]]

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 2017-04-04
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多