2017-03-07 21 views
0

私はpythonを使用してウェブサイトから情報を引き出し、datetime形式を使用しているアプリケーションを作成しようとしています。日付形式はデータ形式で変換できません

def constructYFURL(ticker,start_date,end_date,freq): 
    start_date = datetime.strptime(start_date,"%Y-%m-%d").date() 
    end_date = datetime.strptime(end_date,"%Y-%m-%d").date() 

    s=ticker.replace("^","%5E") 

    if start_date.month-1<10: 
     a="0"+str(start_date.month-1) 
    else: 
     a=str(start_date.month-1) 

    # Also the month always has 2 digits 
    b=str(start_date.day) 

    c=str(start_date.year) 

    if end_date.month - 1 < 10: 
     d = "0" + str(end_date.month - 1) 
    else: 
     d = str(end_date.month - 1) 

    e=str(end_date.day) 

    f=str(end_date.year) 

    `enter code here`g=freq 

    yfURL = "http://real-chart.finance.yahoo.com/table.csv? s="+s+"&a="+a+"&b="+b+"&c="+c+"&d="+d+"&e="+e+"&f="+f+"&g="+g+"&ignore=.csv" 
return yfURL 


from download import constructYFURL 
ticker = "AAPL" 
start_date = "2016-01-01" 
end_date = " 2017-03-06" 
freq = "d" 

yfURL = constructYFURL(ticker,start_date,end_date,freq) 

print yfURL 

私が言って、次のエラーを取得しています:

ValueError: time data ' 2017-03-06' does not match format '%Y-%m-%d'

答えて

0

あなたがで余分先頭にスペースを持っている:

end_date = " 2017-03-06" 

それを削除し、あなたが取得しているエラーが離れて行きますプログラムが実行されます

より良いフォーマットコード:

def constructYFURL(ticker,start_date,end_date,freq): 
    start_date = datetime.strptime(start_date,"%Y-%m-%d").date() 
    end_date = datetime.strptime(end_date,"%Y-%m-%d").date() 

    s=ticker.replace("^","%5E") 

    if start_date.month-1<10: 
     a="0"+str(start_date.month-1) 
    else: 
     a=str(start_date.month-1) 

    # Also the month always has 2 digits 
    b=str(start_date.day) 
    c=str(start_date.year) 

    if end_date.month - 1 < 10: 
     d = "0" + str(end_date.month - 1) 
    else: 
     d = str(end_date.month - 1) 

    e=str(end_date.day) 
    f=str(end_date.year) 
    g=freq 


    yfURL = "http://real-chart.finance.yahoo.com/table.csv? s="+s+"&a="+a+"&b="+b+"&c="+c+"&d="+d+"&e="+e+"&f="+f+"&g="+g+"&ignore=.csv" 
    return yfURL 


ticker = "AAPL" 
start_date = "2016-01-01" 
end_date = "2017-03-06" 
freq = "d" 

yfURL = constructYFURL(ticker,start_date,end_date,freq) 

print yfURL