2016-03-03 110 views
0

我想将csv文件中的日期转换为句子格式。例如:“2012年8月27日”到2012和8月27日,“2013年1月4日” 2013年1月4日,这是代码我有:从csv文件转换日期到句子格式

def getStockData(company): 
    baseurl = 'http://quote.yahoo.com/d/quotes.csv?s=GOOG&f=sl1d1t1c1ohgvj1pp2owern&e=.csv' 
    web_page = urllib.request.urlopen(baseurl) 
    lines = web_page.read().decode() 
    web_page.close() 
    read = csv.reader([lines]) 
    row = next(read) 
    print('The last trade for', row[0], 'is $'+row[1], ', change rate is '+row[11], 'on '+row[2],'. The open was '+row[5],'and the previous close was '+row[10],'.') 

行[2]指示的时间。任何想法如何实现这一目标?

+2

看到https://docs.python.org/2/library/datetime.html#datetime.date.strftime – njzk2

+0

好的,我决定使用row [2] .strftime('%B%d%Y' )在我的打印语句,但然后它给了我“TypeError:无法将'list'对象隐式转换为str',我需要转换为str的列表是什么? – holaprofesor

+1

@holaprofesor:'row [2]'是一个'str'(不知道为什么你会看到'list'),而'strftime'不是'str'的​​方法。你需要'datetime.date.strptime'来分析'str',然后'datetime.data.strftime'来以新的格式对其进行格式化。我不知道你为了得到那个错误而做了什么,因为你给的代码对这个错误没有意义。 – ShadowRanger

回答

0

从一个文本格式到另一种改变date/datetime的格式,最简单的方法是:

  • 被转化为实际date/datetime使用.strptime()方法
  • 转换为文本使用.strftime()方法

例如:

from datetime import datetime 
close_date = datetime.strptime('%m/%d/%Y') 
close_date_text = close_date.strftime('%B %d, %Y')