Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stock_list.py執行錯誤 #30

Open
benny0130 opened this issue Jul 3, 2022 · 8 comments
Open

stock_list.py執行錯誤 #30

benny0130 opened this issue Jul 3, 2022 · 8 comments

Comments

@benny0130
Copy link

Hello 作者您好 ,
不好意思,我目前打第一個程式就出錯了,請參考以下畫面,我的requests / bs4 / pandas應該都有裝成功,不知道怎麼會這樣,再請您協助解惑一下感謝您

#對網站進行requests,並加入指定的headers一同請求

html_data = requests.get("https://isin.twse.com.tw/isin/C_public.jsp?strMode=2",headers=headers)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'requests' is not defined
print(html_data)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'html_data' is not defined

@arleigh418
Copy link
Owner

Hi 您好, 錯誤訊息向您表示了, 他並沒有找到html_data這一個變數,尚未被定義.
這意味著您的print(html_data)應該在宣告html_data變數之前,所以導致錯誤.

程式是一行行執行下去的, 您必須先賦予html_data值,如:
html_data = requests.get("[https://isin.twse.com.tw/isin/C_public.jsp?strMode=2",headers=headers](https://isin.twse.com.tw/isin/C_public.jsp?strMode=2%22,headers=headers))

才可以將它print出來看.
print(html_data)

否則將會跳出您所貼出的錯誤.

@benny0130
Copy link
Author

作者您好,
感謝回覆 ,
不過我有先試過一行一行key , 還有copy and paste your code.
但他還是跑出了這個error.

以上感謝

擷取

@arleigh418
Copy link
Owner

arleigh418 commented Jul 3, 2022

不好意思, 看到您的截圖才完全明白, 是我漏看了, 原因應是您的requests套件沒有裝好.
這得看您的requests套件是裝在虛擬環境內, 還是原生環境內.

我初步判斷您應該是裝在虛擬環境內,但是用vscode的快捷執行他沒有吃到虛擬環境,導致找不到虛擬環境.
建議可以嘗試三個解:

  1. 將stock_list.py或任何py程式搬出虛擬環境的資料夾, 不要將程式放在ENV資料夾裡面, 跟ENV資料夾擺在同一層後再執行
  2. 使用cmd來執行, cd到目標虛擬環境,啟動後執行程式.
  3. 想使用vscode執行,比較專業的做法,透過VSCODE設定去指定執行環境,步驟如下:
    a. 按Ctrl+Shift+P , 此時應出現一個輸入框
    b. 輸入python select interpreter , 之後您可以看看選擇列中有沒有您的虛擬環境, 如果沒有, 可以選擇新增路徑,路徑是虛擬 環境資料夾中的Scripts資料夾裡的python.exe (e.g. D:/test/env/Scripts/python.exe)
    c. kill掉當前的終端機(最下方那個終端機區塊,附近應該有一個垃圾桶符號,點一下可以kill掉) 再次用快捷鍵執行, 應就可以.

請您嘗試看看囉, 有甚麼疑問歡迎在隨時提出討論!!

@benny0130
Copy link
Author

謝謝作者熱心回復,先前狀況已經排除,目前可以正常寫code.本書真的實戰性極高,謝謝作者撰寫本書,讓我們可以更有效的學習交易與python.謝謝您

@arleigh418
Copy link
Owner

您客氣了,有其他疑惑歡迎隨時提出討論哦~

@YZeCode
Copy link

YZeCode commented Apr 11, 2023

@arleigh418
你好,我想問stock_list.py 在CMD 執行完後,出現warning

UserWarning: Could not infer format, so each element will be parsed individually, falling back to dateutil. To ensure parsing is consistent and as-expected, please specify a format.
x['上市日'] = pd.to_datetime(x['上市日'], errors='coerce')

執行結果是正常但是就會有這條訊息,再麻煩您解惑

謝謝

@YZeCode
Copy link

YZeCode commented Apr 11, 2023

問題已解決
在 x['上市日'] = pd.to_datetime(x['上市日'], format="%Y/%m/%d", errors='coerce')
需定義日期格式
pandas預設是 日 月 年

@arleigh418
Copy link
Owner

您好,謝謝您的分享。
在較新版本的pandas中,多了一些對日期格式的判斷與要求,就會出現您的警告。

在2021年底/2022年初那個時候的pandas(大概是版本1.3.5左右,現在是2.0.0)沒有這個問題。
感謝您的提出,也謝謝您提供的解決方式。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants