2017-04-21 15 views
0

我是python的新手,所以這可能是一個noob問題。將字符串轉換爲日期不會發生在函數內

我有一個簡單的函數來返回daynumber,然後根據該值做一些計算。

def dow(date): 
    date=pd.to_datetime(str(date)) 
    dayNumber=date.weekday() 
return dayNumber 

我傳遞字符串('yyy-mm-dd')並嘗試在調用weekday()之前轉換函數內部。 當我調用這個函數,並從相同的文件傳遞字符串它的工作正常。 但是,當我從不同的文件調用此函數,轉換部分不會發生,我猜。 我收到以下錯誤 'str'對象沒有屬性'weekday'

但是,當我將它從不同的文件轉換爲datetime並調用此函數時,它運行良好。有沒有我在這裏違反的規則。

使用

date= '2017-04-17' 
x=dow(date) 

正常工作在同一個文件調用。

下面的代碼是用來從另一個Python文件

import demo_v3 as demo 
date= '2017-04-17' 
x=demo.dow(date) 

拋出我(「海峽」對象有沒有屬性「工作日」), 但是從另一個Python調用時,下面的代碼工作正常的錯誤調用文件

import demo_v3 as demo 
date= '2017-04-17' 
date=pd.to_datetime(str(date)) # removing convertion inside function when doing this 
x=demo.dow(date) 
+0

如果創建[最小,完整,可驗證](http://stackoverflow.com/help/mcve)例如,它讓我們更容易幫助你。具體來說,爲了幫助您,最好向我們展示導致問題的數據和代碼。 –

+0

已編輯更詳細的問題。希望現在很清楚。 – Niri

回答

0

您不會錯過任何有關日期轉換的信息。我能夠毫無問題地運行有問題的代碼。

demo.py

import pandas as pd 

def dow(date): 
    date = pd.to_datetime(str(date)) 
    dayNumber = date.weekday() 
    return dayNumber 

test.py

import demo 

def main(): 
    date= '2017-04-21' 
    x=demo.dow(date) 
    print(x) 

main() 

輸出:

>>> 4 

沒有任何錯誤和輸出是一週中的正確的日期(4 = =星期五)。