老師我12:14的部分執行後會跑出下面這些東西 想問一下是哪裡做錯了? Traceback (most recent call last): File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 1319, in do_open h.request(req.get_method(), req.selector, req.data, headers, ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ encode_chunked=req.has_header('Transfer-encoding')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1336, in request self._send_request(method, url, body, headers, encode_chunked) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1382, in _send_request self.endheaders(body, encode_chunked=encode_chunked) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1331, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1091, in _send_output self.send(msg) ~~~~~~~~~^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1035, in send self.connect() ~~~~~~~~~~~~^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1477, in connect self.sock = self._context.wrap_socket(self.sock, ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ server_hostname=server_hostname) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 455, in wrap_socket return self.sslsocket_class._create( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ sock=sock, ^^^^^^^^^^ ...... session=session ^^^^^^^^^^^^^^^ ) ^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1076, in _create self.do_handshake() ~~~~~~~~~~~~~~~~~^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1372, in do_handshake self._sslobj.do_handshake() ~~~~~~~~~~~~~~~~~~~~~~~~~^^ ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Basic Constraints of CA cert not marked critical (_ssl.c:1020) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\WYB\Desktop\python\python-2\abc.py", line 5, in with request.urlopen(src) as response: ~~~~~~~~~~~~~~~^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 189, in urlopen return opener.open(url, data, timeout) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 489, in open response = self._open(req, data) File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 506, in _open result = self._call_chain(self.handle_open, protocol, protocol + '_open', req) File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 466, in _call_chain result = func(*args) File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 1367, in https_open return self.do_open(http.client.HTTPSConnection, req, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ context=self._context) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib equest.py", line 1322, in do_open raise URLError(err) urllib.error.URLError:
有個問題想請教老師 在clist =data [“result”][“results”]這行中的clist資料格式是屬於list 但在下面一行的for迴圈中 for company in clist: file.write(company[“公司名稱”]) company[“公司名稱”]這個寫法應該屬於字典中鍵與值的對應,但為什麼list也可以使用這個方法找出company對應的值,謝謝老師
老師您好,我在12:30要使用台北市政府公開資料,想問老師為何不會照資料顯示出來?謝謝! 我的程式碼為: import urllib.request as request import json src="data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=296acfa2-5d93-4706-ad58-e83cc951863c" with request.urlopen(src) as response: data=json.load(response) print(data) 可是結果卻顯示: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1317, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1244, in request self._send_request(method, url, body, headers, encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1290, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1239, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1026, in _send_output self.send(msg) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 966, in send self.connect() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1414, in connect server_hostname=server_hostname) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 423, in wrap_socket session=session File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 870, in _create self.do_handshake() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1139, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "open-data.py", line 12, in with request.urlopen(src) as response: File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen return opener.open(url, data, timeout) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open response = self._open(req, data) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open '_open', req) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain result = func(*args) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open context=self._context, check_hostname=self._check_hostname) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open raise URLError(err) urllib.error.URLError: LiaodeMacBook-Pro:Python-practice liaochiayu$ python3 open-data.py File "open-data.py", line 15 # ^ SyntaxError: invalid character in identifier LiaodeMacBook-Pro:Python-practice liaochiayu$ python3 open-data.py Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1317, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1244, in request self._send_request(method, url, body, headers, encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1290, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1239, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1026, in _send_output self.send(msg) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 966, in send self.connect() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1414, in connect server_hostname=server_hostname) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 423, in wrap_socket session=session File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 870, in _create self.do_handshake() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1139, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "open-data.py", line 12, in with request.urlopen(src) as response: File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen return opener.open(url, data, timeout) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open response = self._open(req, data) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open '_open', req) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain result = func(*args) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open context=self._context, check_hostname=self._check_hostname) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open raise URLError(err) urllib.error.URLError:
請問老師,我跟著做下面這段後, clist=data["result"]["results"] with open("data2.txt","w") as file: for company in clist: file.write(company["公司名稱"]+" ") 為什麼最後會出現這個error,能怎麼解決? Traceback (most recent call last): File "14.py", line 45, in clist=data["result"] " TypeError: string indices must be integers " # 我用mac , python 3.7.4
想請問澎澎老師 為什麼在明明都在for迴圈裡面,在程式中直接print不用+" ",就可以直接換行 而在寫入另一個檔案("data.txt")中,卻要使用+" " 來換行?才會一列一列的 是觀察而得的嗎 這是您的程式: with open("data.txt","w", encoding="utf-8") as file: for company in clist: print(company["公司名稱"]) file.write(company["公司名稱"]+" ")
for company in clist: print(company["公司名稱"]) 請問這是甚麼意思呢? 我能理解迴圈的語法是 for 變數 in 列表,而"公司名稱"是字典裡面的key,因此print(company["公司名稱"])代表印出"公司名稱"的value,但我不懂這跟迴圈的變數有甚麼關係? (為甚麼company會出現兩次?) 謝謝~
import urllib.request as request import json src="opendata.hccg.gov.tw/dataset/d55cf39b-bebc-488f-9a86-4f36e2865d3f/resource/111d2c30-a788-41f9-8ebd-0798fa69f261/download/20180328091122254.json" with request.urlopen(src) as response : data = json.load(response) clist=data with open("data4.txt","w",encoding="utf-8") as file : for company in clist: file.write(company["場所名稱"]+" "+company["AED放置地點"]+" ") print(company["場所名稱"]+" "+company["AED放置地點"]+" ")
錯誤訊息如下: Traceback (most recent call last): File "open-data.py", line 5, in print(data) UnicodeEncodeError: 'cp950' codec can't encode character '\u7c8b' in position 8387: illegal multibyte sequence
澎澎老師,我不知道我為什麼連最基本的連線都做不了,我照著您敲代碼,試著run,但是出錯誤: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1342, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1255, in request self._send_request(method, url, body, headers, encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1301, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1250, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1010, in _send_output self.send(msg) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 950, in send self.connect() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1424, in connect self.sock = self._context.wrap_socket(self.sock, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _create self.do_handshake() File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1309, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1122) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/bokmanchiu/Library/Mobile Documents/com~apple~CloudDocs/G-python/run.py", line 3, in with request.urlopen(scr) as response: #連線 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 214, in urlopen return opener.open(url, data, timeout) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 517, in open response = self._open(req, data) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 534, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 494, in _call_chain result = func(*args) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1385, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1345, in do_open raise URLError(err) urllib.error.URLError:
彭彭老師你好,想請教以下問題: import urllib.request as request import json src="data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=296acfa2-5d93-4706-ad58-e83cc951863c" with request.urlopen(src) as response: data=json.load(response) clist=data["result"]["results"]
老師請問一下 import urllib.request as request import json src="data.taipei/api/getDatasetInfo/downloadResource?id=8a569b5b-0cb1-4c7f-a064-780b3301354c&rid=9744ea1c-aafb-471c-8bb8-04f398ad415a" with request.urlopen(src) as response: data=json.load(response) # 利用 json 模組處理 json 資料格式 print(data) #抓取特定資料 clist=data["result"]["results"] for market in clist: print(market["夜市名稱"]) #取得夜市名稱的資料 with open("market.txt", mode="w", encoding="utf-8") as file: # 開啟檔案並寫入資料 for market in clist: file.write(market["夜市名稱"]+" ") 會出現以下錯誤訊息 Traceback (most recent call last): File "crawler.py", line 8, in clist=data["result"]["results"] TypeError: list indices must be integers or slices, not str 請問老師這個要如何解決
@@cwpeng-course 老師我後面又找了一個台北市雨量站的API下面是code: import urllib.request as request import json src="117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D" with request.urlopen(src) as response: data=json.load(response) # 利用 json 模組處理 json 資料格式 print(data) #抓取特定資料 clist=data["count"]["data"]# 指定資料所在的字典,由於參考資料改變,這一行僅供參考 for stationName in data: print(stationName["stationName"]) #取得臺北市雨量站名稱的資料 with open("market.txt", "w", encoding="utf-8") as file: # 開啟檔案並寫入資料 for stationName in data: file.write(stationName["stationName"]+" ") 但是有個錯誤如下: TypeError: 'int' object is not subscriptable 請問老師這個問題要怎樣解決 補充: 台北市雨量站及時資料API 117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D 台中大肚台地生物水域調查API datacenter.taichung.gov.tw/swagger/yaml/387010000A 這兩個跟老師的教材不同是不是就不能使用巢狀字典儲存
@@kaokevin1775 因為這一個資料的結構跟老師的範例不同 他在data下面就是列表了 所以可以參考以下 ------------------------------------------------------------------ #串接、擷取公開資料 import urllib.request as request import json src="117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D" with request.urlopen(src) as response: data=json.load(response) #利用json模組讀取資料 #取得觀測站名稱, 並寫入檔案(weather.txt) slist=data["data"] with open("weather.txt","w", encoding="utf=8") as file: for name in slist: file.write(name["stationName"]+" ")
不好意思 請問澎澎老師 我照著課程上面打 發現錯誤如下 "Traceback (most recent call last): File "", line 2, in data=json.load(response) File "C:\Python34\lib\json\__init__.py", line 268, in load parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) File "C:\Python34\lib\json\__init__.py", line 312, in loads s.__class__.__name__)) TypeError: the JSON object must be str, not 'bytes'" 請問要如何解決呢? 謝謝您的教學影片~ 獲益良多~
老師您好.各位先進好 我照的老師的程式輸入台灣大學網站 卻出現下列一堆訊號.不知道該從哪裡解決.感謝 Traceback (most recent call last): File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 1350, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1240, in request self._send_request(method, url, body, headers, encode_chunked) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1286, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1235, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1006, in _send_output self.send(msg) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 946, in send self.connect() File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1409, in connect self.sock = self._context.wrap_socket(self.sock, File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 1040, in _create self.do_handshake() File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 1309, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "start.py", line 27, in with request.urlopen(src) as response: File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 222, in urlopen return opener.open(url, data, timeout) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 525, in open response = self._open(req, data) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 542, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 502, in _call_chain result = func(*args) File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 1393, in https_open return self.do_open(http.client.HTTPSConnection, req, File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib equest.py", line 1353, in do_open raise URLError(err) urllib.error.URLError:
彭彭老師,为什么我写的出现这个提示 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30687: illegal multibyte sequence 找到原因了,用python3.5自带编译器可以正常显示,但不知道在Visual Studio Code 中怎么修正。
彭彭老師 出現這個是甚麼意思 ,GOOGLE翻譯後還是不懂 Traceback (most recent call last): File "c:\Users\蔡承諺\Documents\python77\python_file\open_data.py", line 12, in my_list = data["RouteID"] TypeError: list indices must be integers or slices, not str
這陣子心血來潮想學程式,看到老師的解說從最一開始不怎麼了解程式到現在有初步的了解,後續會再跟著老師學習!
謝謝你的回饋,很高興對你有幫助,一起努力 :)
这节课太棒了,就像实战一样,顺利得到程式结果,有一种成就感。
耶,很高兴对你有帮助哦 :)
每個細節都講得很清楚,有不懂的地方看幾遍配上解說就很好理解!
謝謝你的回饋哦 ~~~~~
老師我12:14的部分執行後會跑出下面這些東西
想問一下是哪裡做錯了?
Traceback (most recent call last):
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 1319, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
encode_chunked=req.has_header('Transfer-encoding'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1336, in request
self._send_request(method, url, body, headers, encode_chunked)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1382, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1331, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1091, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1035, in send
self.connect()
~~~~~~~~~~~~^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\http\client.py", line 1477, in connect
self.sock = self._context.wrap_socket(self.sock,
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
server_hostname=server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 455, in wrap_socket
return self.sslsocket_class._create(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sock=sock,
^^^^^^^^^^
......
session=session
^^^^^^^^^^^^^^^
)
^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1076, in _create
self.do_handshake()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1372, in do_handshake
self._sslobj.do_handshake()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Basic Constraints of CA cert not marked critical (_ssl.c:1020)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\WYB\Desktop\python\python-2\abc.py", line 5, in
with request.urlopen(src) as response:
~~~~~~~~~~~~~~~^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 189, in urlopen
return opener.open(url, data, timeout)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 489, in open
response = self._open(req, data)
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 506, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
'_open', req)
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 466, in _call_chain
result = func(*args)
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 1367, in https_open
return self.do_open(http.client.HTTPSConnection, req,
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
context=self._context)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\WYB\AppData\Local\Programs\Python\Python313\Lib\urllib
equest.py", line 1322, in do_open
raise URLError(err)
urllib.error.URLError:
加油!彭彭老師教得比看書教得好!
謝謝你這麼說 :) 給我很多動力 ~~~
原來要抓出統編要打上print(company["\ufeff統編"])
用網頁原始碼看不到,但是透過老師說的→
data=json.load(response)
print(data)
就會看的到了 ex:'\ufeff統編': '12978019'
想了很久,但複習課程很有幫助,謝謝彭彭老師。
謝謝你的分享 :) 原始資料總是會有很多意想不到的狀況,在也是工程師存在的理由 XDDDD
終於知道為什麼統編出不來了!!!!
謝謝
很實用也講得很清楚,已訂閱期待更豐富的內容 謝謝
好哦,還會再繼續努力 :)
謝謝彭彭老師把流程講解地很清楚~一步一步照著完成真的很有趣XD
哈哈哈,很高興看到有趣的回饋,謝謝哪 :)
老師聲音好親切哦,每次説要跑咯我就超激動XDDD
XDDDDD
彭彭老師的教學內容很讚,眾口鑠金、無庸置疑,在課程下方的留言部份有個建議(也是我的困撓)請老師試試看可否能改善,就是請老師讓系統在每則留言最前頭加上編號,方便追蹤。
以我為例子,留言共有500則,想要一則一則的看全部內容與回覆、了解、記錄作筆記,就要3小時以上的時間,問題不是這個,問題是只看完一部份留言,還沒有全部看完,臨時有需要馬上處理的事情,只好忍痛離開網站,去處理事情。下次進入留言後,要忍耐的由上往下或由下往上一則一則的去找要繼續看下去的留言,哈哈!終於找到了,看一下時間已經過了55分鐘快一小時了,很辛苦!好累喔!老師,如果有編號記住編號,下次要想看的留言不必30秒鐘就可以快速找到,感覺快速、方便、輕鬆、愉快、好感恩!
例如留言為 彭彭老師的教學內容很讚,好棒棒! 是第99則,加上編號後變成 99彭彭老師的教學內容很讚,好棒棒!,如此以後在追蹤這則留言就非常方便的快速找到,就是邀網友一起追蹤討論,網友也會非常樂意參與,敬請老師採納我的建議,試試看改善此功能,相信您一定可以成功,造福初學者與網友,功德無量,謝謝您!
系統是 TH-cam 的,不是我的,所以可能無力去修改 XDDD 但感謝你的詳細建議,很棒 :)
今天終於跟著影片練習完了,覺得教得非常好
請問老師後續還會有相關課程嗎?
或是是否有專注於爬蟲相關應用的付費課程
謝謝彭彭老師
會哦,這個確實在規劃中,進階的爬蟲實例和範例我都打算在未來放在 Udemy 的付費課程中 ~ 應該會是近幾個月的事情 :)
@@cwpeng-course 為什麼不放在台灣的平台...例如Tibame或是Hahow??我目前只知道這兩個...
@@cwpeng-course 您之後會不會教AI呀??我覺得您上python上的好清楚喔...
謝謝老師 跟著老師學習 有進步且有成就感
很高興對你有幫助哦 :)
請問老師後面還會有新的影片是關於python的嘛
因為老師講解得很清楚 想請問老師
謝謝彭彭老師
不客氣 :)
會哦,還會持續有 Python 相關的教學 ~
老師你好.
不知道老師能出一集課程.來教導如何用Python建立資料庫.輸入資料.查詢資料...作業
感謝老師如此詳細且精彩的課程
會哦,在資料庫課程的後面會有這方面的介紹,也謝謝你的回饋呦 :)
彭彭老师下午好!
我在跟着老师的视频学习,在爬台北公开资料,代码都是参照老师的一个一个敲打的,为何终端那里报错呢?例如:self.sock = self._context.wrap_socket(self.sock,
這集非常有成就感!謝謝老師!
讚讚,繼續加油 :)
有個問題想請教老師
在clist =data [“result”][“results”]這行中的clist資料格式是屬於list
但在下面一行的for迴圈中
for company in clist:
file.write(company[“公司名稱”])
company[“公司名稱”]這個寫法應該屬於字典中鍵與值的對應,但為什麼list也可以使用這個方法找出company對應的值,謝謝老師
同問
單純是 for 迴圈的基礎語法:把列表中的資料一一取出放到前面的變數名稱中,執行迴圈。變數名稱也不一定要叫做 company,要叫做 abc 也行。
感謝彭彭老師
做完這個課程之後 我有自己再去抓取公車的資訊
不過鎖定路線名稱之後 抓下來的是整個公車的value
有辦法鎖定我要的數值就好嗎?
他路線是按照藍紅綠黃等等 而我只想要抓取紅色的資料
不過通通都被包裹在"路線名稱"之中
謝謝彭彭
不同的資料,會有不同的格式,你得根據得到的資料去解析出你真正要的資訊。
每種狀況都不一樣,所以我也沒辦法在這裡幫上什麼忙 ~
想請問老師,為什麼在 12:14 那邊的
data=json.load(response)
後面不用加入.decode(utf-8)
就能顯示中文了呢?
可以想成我們呼叫的函式內部幫我們處理掉解碼的部分了 ~
載入> 使用
先載入模組,在使用模組中的函式或變數
感謝紀錄 ~
感謝彭彭老師~一路看到這個檔案~從0開始真的受益良多~
在練習的時候發現有的公開資料在寫入檔案的時候會有出現底下的錯誤:
TypeError: can only concatenate str (not "NoneType") to str
請問這樣要怎麼處理?謝謝
哈~知道了~自問自答~加一個判斷是不是none就好了~感謝老師~繼續往下學習
有解決就好嘍 :)
感謝老師的教學 萬分感謝
不會,謝謝你的回饋 :)
大有回饋
with open("companies.txt", mode="r", encoding="utf-8") as file:
print(file.read())
感謝你的分享 :)
老師您好,我在12:30要使用台北市政府公開資料,想問老師為何不會照資料顯示出來?謝謝!
我的程式碼為:
import urllib.request as request
import json
src="data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=296acfa2-5d93-4706-ad58-e83cc951863c"
with request.urlopen(src) as response:
data=json.load(response)
print(data)
可是結果卻顯示:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1317, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1244, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1290, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1239, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1414, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 423, in wrap_socket
session=session
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 870, in _create
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "open-data.py", line 12, in
with request.urlopen(src) as response:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
raise URLError(err)
urllib.error.URLError:
LiaodeMacBook-Pro:Python-practice liaochiayu$ python3 open-data.py
File "open-data.py", line 15
#
^
SyntaxError: invalid character in identifier
LiaodeMacBook-Pro:Python-practice liaochiayu$ python3 open-data.py
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1317, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1244, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1290, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1239, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1414, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 423, in wrap_socket
session=session
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 870, in _create
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "open-data.py", line 12, in
with request.urlopen(src) as response:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
raise URLError(err)
urllib.error.URLError:
或許你可以嘗試看看:
import ssl
context=ssl._create_unverified_context()
with req.urlopen(request, context=context) as response:
謝謝老師~
後來加上
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
就有跑出結果了!謝謝~
老師您的
with open("data.txt","w",encoding="utf-8") as flie:
為什麼不用加 mode="w" 就可以執行呢?
第二個參數預設就是 mode 的設定,要明確的寫出來也可以 ~
嗨! 彭彭你好,有照老師的程式跑過一遍,但發現公司數量最多只能取到1000家,有看到台北市資料大平台的設定是單次最多1000筆。想請問老師是不是因為這樣的原因才讓資料只能被拿到1000筆,還是在取得公開資料時要另外做設定?
這是資料提供方的限制,你可以試著去查看 API 有沒有辦法放寬數量,如果沒辦法,那麼我們也就只能這樣。
@@cwpeng-course 了解!謝謝老師的回覆 👍👍
謝謝彭彭老師的詳細教學!另外想請教最後寫入檔案時有沒有辦法寫入多項變數資料(例如:每一列資料都有名稱、統編、地址) 再次謝謝老師!
不客氣 :) 可以呦,就把變數串成一個字串再一起 write 出去嘍 ~
彭彭老師您好!謝謝提供這麼棒的課程教學
請問老師為什麼將公司名稱改成統編就跑錯誤KeyError,公司地址就可以順利產生。
影片老師有說原始的統編的key處理不乾淨,換成"\ufeff統編"再輸入run一次試試看
感謝 @AAAFFnnn 分享 :)
感謝老師 我今天學會怎麼用open-data api
哈哈哈,很棒呀,謝謝你和我分享 :)
老師在用第一個台灣大學的網址時應該標註,網址下有底線才是有效網址,不然單純在visual code打出來的網址他似乎讀取不到
感謝您的建議 ~
感謝解惑,剛一直卡在這^^ 複製一下 貼上就好了
請問老師,我跟著做下面這段後,
clist=data["result"]["results"]
with open("data2.txt","w") as file:
for company in clist:
file.write(company["公司名稱"]+"
")
為什麼最後會出現這個error,能怎麼解決?
Traceback (most recent call last):
File "14.py", line 45, in
clist=data["result"]
" TypeError: string indices must be integers "
# 我用mac , python 3.7.4
目前沒辦法完整判斷,我猜測可能是忘了將從網路上抓到的文字串,透過 json 模組轉換成字典和列表了?
應該是版本更新問題吧
第16行使用'w'會造成覆寫而不是往後追加
改成'a'就沒問題了
參考:網路資料
w 會複寫,a 會追加沒錯 ~ 謝謝你的分享 :)
老師請問:
如果是想印出 "_importdate" 裡面的"date" 是這樣寫嗎?
for company in clist:
print(company["_importdate"]["date"])
模組 module: 獨立的程式檔案,可以重複使用
感謝紀錄 ~
謝謝老師的精彩解說,讓我可能迅速的了解,但是在網路連線這一章節一開始就卡住了 ,我用你網路連線跟資料串接的語法,重複打一遍,結果卻無法執行顯示錯誤,我確定有連網路@@,請問這跟版本有差異嗎?還是我哪邊錯了? 卡死中
哈哈 今年2021/7月 那個名錄 的瀏覽次數66992次 其他資料只有10幾次大多個位數
所以估計平均每年27000次點擊 一天就會有70~80幾人 因為看了這個教學 跑去點網頁
網頁製作者保證滿頭問號xd
哈哈哈,這件事情確實挺有趣的,希望不會造成對方的困擾才好 @@a
謝謝老師的教學~~
在練習的時候發現網站的code很難看懂一個資料是在哪一層的字典裏面
除了用肉眼自己找
有沒有一個程式的方法可以找出一個資料 是被哪幾層字典包裹起來的
sorry文字表達不太好
希望你看得懂我在講甚麼
利用 Chrome 的開發人員工具,裡頭有個 Network 的標籤,可以觀察到瀏覽器的網路連線和結果,他會幫你把資料整理的很容易看 ~
@@cwpeng-course
謝謝!
我試試看
新北市政府覺得困惑,為何廠商名錄點閱爆表XD
哈哈哈哈哈 XDDD
點閱一萬多次🤣🤣🤣🤣🤣🤣🤣🤣
彭彭老師您好,想請問一下,我使用您的範例程式分別在macOS跟Windows系統上的vscode執行,macOS會編譯失敗,而windows則能印出結果,請問macOS有需要安裝其他套件嗎?謝謝
同問 我也適用macOS的vscode跑 從印出公司名稱那邊就出現問題 格式跟彭彭老師的結果會不一樣 會跑出亂碼QQ 想請問該怎麼解決?謝謝
要看看實際的錯誤訊息哦,另外 Mac 執行時請使用 python3 指令 ~
想請問澎澎老師
為什麼在明明都在for迴圈裡面,在程式中直接print不用+"
",就可以直接換行
而在寫入另一個檔案("data.txt")中,卻要使用+"
" 來換行?才會一列一列的
是觀察而得的嗎
這是您的程式:
with open("data.txt","w", encoding="utf-8") as file:
for company in clist:
print(company["公司名稱"])
file.write(company["公司名稱"]+"
")
print 本身會自己帶有換行的效果,但是 write 不會。
@@cwpeng-course 謝謝老師 !
謝謝彭彭老師
想請問為什麼老師在連線台灣大學的網址時,不用import ssl就可以成功連接上?
Mac 的憑證要特別處理,Windows 的不用 ~
12:16
請問老師
抓下來的公開資料內有中文為何不用decode就能顯示中文呢
會不會有需要decode的狀況呢
主要是 json.load() 這個方法幫我們順便解碼掉了哦 ~ 如果不是用這個方法,確實有可能會需要明確的寫 decode() 指令 ~
@@cwpeng-course 謝謝老師回復!
老师,我是做建筑的,bim。信息化这块的,里面有个插件叫dynamo,是以python作为底层驱动,经常需要调取数据,所以对层级关系比较容易理解,当中有个调取公司名称,那可以clist=data["result"]["results"]["公司名称"]嘛?
如果按照我们的资料格式,应该会是:clist=data["result"]["results"][0]["公司名称"]
老師你好
我有個問題想問一下
這邊的 decode("utf-8")
為甚麼不能使用 上次提到的
encoding ("utf-8")
utf-8 不是任何形式都可以用嗎?
還是前面的英文單字 也是有影響?
decode 和 encode 是不同的意思,確實會有影響哦 ~~~
謝謝彭彭老師! ◉‿◉
目前照老師的爬取無法爬取資料請問老師還會重新拍一部影片更改過的版本嗎?因為會出現
urllib.error.URLError:
錯誤的訊息
Mac 電腦可以在程式最上方加上:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
老師我用windows筆電也遇到一樣的情況,但也是加了上方兩行就ok了,請問這樣正常嗎
老師您好,目前如果直接複製api連結並在瀏覽器另開分頁,似乎就只有前20筆資料(按照影片步驟做也確實只有20筆資料;然而若直接下載csv檔案則會有非常多筆,想問是目前網站給的api本身就有誤嗎?或是我可能遺漏了哪些東西?謝謝老師!
在Python 網路爬蟲 Web Crawler 教學 - Cookie 操作實務單元有教到怎麼抓取多頁,謝謝老師
不會呦,謝謝你的回饋 :)
api 存取是什麼東西 彭彭可以稍微介紹一下嗎?
最基本的理解就是網路上有些人會提供能夠用網址連線得到的資料,我們稱之為 API。我們可以透過 Python 程式去連結這樣的 API。
老師您好:
想請問為什麼網路連線在vs code處理會跳出urllib.error.URLError:
但如果複製到google colab 卻可以正常顯示呢
如果你使用 Mac,可以在程式碼最上方加上:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
想請問老師如果出現以下問題該如何處理?
程式碼都是按照老師的方式打
後來json那段也有改成data=json.loads(response.read().decode("utf-8"))
但依舊跑出這種情況
想問問老師該如何處理
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
看起來是沒有順利抓取到資料,可能要再仔細檢查一下前面的程式碼。
感謝老師詳細的教學!!
想請問一下老師中間有放入的
clist=data["result"]["results"]這一個作法,在變數data後面放入兩個[][]這一段用法算是甚麼意思呢~? 他有沒有一個比較專門的名詞之類的~? 是專屬於json格式的資料有兩層才這樣做帶入嗎?? 我現在因為不理解只能先背的,但還是希望老師能簡單說明一下,感謝>
只是基本的字典用法而已,JSON 中的大括號在 Python 裡會被詮釋成字典。
彭彭好:我輸入和您6:19一樣的code後,最後卻得到以下錯誤代碼:urllib.error.URLError: ,上網查詢後仍無法解決問題可以請教您可能是哪裡出問題了嗎?
後加上import ssl
ssl._create_default_https_context = ssl._create_unverified_context 就能順利運作了,想問import ssl變成常態了嗎?
這算是電腦本身對於 SSL 憑證設定的問題,一般是 Mac 會有這個狀況,如果是 Mac 電腦要做連線到 https 開頭的網址,很可能就會需要加上這段。
@@cwpeng-course 謝謝您的說明!
老師您好,影片後半段的程式碼"for company in clist:"其中的company是什麼?(因為沒有去定義company但卻可以直接用這個名稱所以有疑慮)
你可以複習一下 for 迴圈的介紹哦,在 for 迴圈的語法中:
for 變數名稱 in 列表:
那個變數名稱是直接建立的,會依序取得列表中的資料,並可以在迴圈中使用。
这个和for i in range(1)中的i一样的,名字随便取
首先感謝彭彭老師的教學影片
我完全是新手,一步一步地看著影片到這裡
有時候要想好久才了解程式碼的運作QQ
這個台北市政府的APi好像無法使用了
請問有哪位朋友可以提供其他的API嗎
我記得留言裡面好像有些其他的連結可以使用 ~
可以使用哦。。。因為有SSL 可以參考相關網友的寫法。。。是可以讀取資料的。。
老師,也可以順便教pands的相關影片,也預祝你破一萬!!!
哈哈哈,謝謝你關於教學方向的建議和祝福,我還沒注意到快破一萬的說 XD
請問老師 14:28
clist=data["result"]["results"] 是巢狀列表的概念嗎?
是巢狀的字典哦 ~
感謝彭彭!
谢谢彭彭老师
:)
老師您好:看了你的影片對我這初學者來說受益良多,但是有幾個問題想請教您指點一下。
1.網路上open data資料如果1小時更新一次,我要連續抓取不監斷(1小時抓一次),請問該怎處理?
2.如果成功抓取下來,我又不想覆蓋之前資料想要同個資料檔案下排序下去,請問該怎處理?
3.下載後的資料,依時間來說我只想要留取最近24小時的資料,等於超過1天以前資料會自動刪除,請問該怎做處理?
謝謝彭彭老師
1. 可以使用作業系統中的排程功能,通稱 cron job
2. 打開檔案時使用 append mode,例如 open("test.txt", "a")
3. 一樣,可以使用上述作業系統中的排程功能,每天跑一個程式來清除過期的資料。當然你在儲存資料的時候就要帶上時間的資訊。
謝謝老師的意見指導,我在試試看^_^
謝謝老師指點的方向,我試成功了!!希望未來可以跟老師學習到更多更實用的技巧^_^
恭喜成功 :)
社區發展服務-社區發展協會(內湖)
2019-01-22
487次
臺北市內湖科技園區廠商資料。
2019-01-16
6574次
臺北市內湖垃圾焚化廠營運管理及環境品質監測報告
2018-12-24
851次
提供臺北市各區里疏散避難圖資訊
2018-10-23
219次
提供臺北市「中山、內湖區已登記公私有土地筆數面積」統計資料。
2018-01-22
144次
蠻多人關心誰進駐內湖 XD
哈哈哈,這件事情我有發現 XDDDDD
好有趣 老師教得讓人想一直學下去
哈哈哈,加油嘍 :))))
老師好
有一個概念上的問題想請教老師
請問用網路連線程式、公開資料串接 來取得資料 會有哪些好處 相對於先下載資料(可能是csv or xlsx etc ...)然後在寫入python
因為我是從R轉換成python的使用者 所以很多想法都還會從R出發 慢慢在和python磨合中
還煩請老師幫忙解答 謝謝
直接用程式串接,主要的好處在於資料源如果有更新,程式就能夠直接取得最新的資料,不用再手動去下載一次 ~
谢谢,教的特别好
:)
想請問老師:第一種照老師寫法ok, 用urllib.request, 第二種用request會報錯,試了很久沒辦法正確抓取
import urllib.request as request
import json
src='data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=e7c98875-48fb-4ce8-835f-2304213b2e19'
with request.urlopen(src) as response:
data=json.load(response)
print(data)
---------------------------------------------------------------------------
import requests
import json
src='data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=e7c98875-48fb-4ce8-835f-2304213b2e19'
response=requests.get(src)
data=json.load(response)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in
3 src='data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=e7c98875-48fb-4ce8-835f-2304213b2e19'
4 response=requests.get(src)
----> 5 data=json.load(response)
~\Anaconda3\lib\json\__init__.py in load(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
291 kwarg; otherwise ``JSONDecoder`` is used.
292 """
--> 293 return loads(fp.read(),
294 cls=cls, object_hook=object_hook,
295 parse_float=parse_float, parse_int=parse_int,
AttributeError: 'Response' object has no attribute 'read'
json.load() 能接受的東西是有限制的,你的第二種寫法丟回來的 response 不能被 json.load() 接受,可能要找點別的方式來處理 ~
@@cwpeng-course 謝謝老師回答,所以是json.load在requests這個package的用法不能這樣用嗎?
一直出現"AttributeError: partially initialized module 'json' has no attribute 'load' (most likely due to a circular import)",無法下一步
已解決,原來是我的檔名取成json!!
有解決就好 :)
那老師可以解釋一下socket模組嗎?
我在網路上學了很多,想聽聽看老師是怎麼說的
socket 模組的使用,必須跳脫 HTTP 通訊協定,回到更底層的 TCP/IP 通訊協定來思考,這個是大方向。
感謝你的建議,有時間的話我會考慮錄這方面的影片 :)
謝謝
老師 請問如何分辨資料是屬於哪一種格式(JSON,CSV)的呢,是看排列方式嗎。
對哦,直接打開文件,觀察資料的格式。例如 CSV 很明顯就是用逗號隔開的表格式資料。
感謝彭彭老師, 影片內容深入淺出
請問有教學的講義跟教學範例程式可以下載嗎?
你可以參考我的課程網站,所有相關公開的內容都在上面嘍:
training.pada-x.com/
for company in clist:
print(company["公司名稱"])
請問這是甚麼意思呢?
我能理解迴圈的語法是 for 變數 in 列表,而"公司名稱"是字典裡面的key,因此print(company["公司名稱"])代表印出"公司名稱"的value,但我不懂這跟迴圈的變數有甚麼關係? (為甚麼company會出現兩次?)
謝謝~
company 會取得列表中的每個字典,後面在利用這個名稱去取得字典中的 Value,大概就是這樣的連動關係 ~
@@cwpeng-course 謝謝彭彭老師的解說~ 沒想到這麼久了還能釣出老師本人親自回覆🤣 真的太感謝了🙏🏻
@@effie559 XDDDD
data=response.read().decode("utf-8")
已解决
嗯嗯嗯 :)
謝謝彭彭老師
:)
彭彭老師您好:
想請教您這個error是為甚麼呢?(我程式碼和您的範例程式碼是相同的)
Traceback (most recent call last):
File "open-data.py", line 15, in
file.write(company["公司名稱"]+"/n")
OSError: [Errno 9] Bad file descriptor
還是要看看你的完整程式碼才能判斷可能的錯誤原因哦 ~
@@cwpeng-course 老師好:
底下是完整的程式碼,想請問是什麼問題
# 網路連線程式、公開資料串接
import urllib.request as request #載入模組
import json
src = "www.ntu.edu.tw/"
# 下載特定網址的資料
with request.urlopen(src) as response:
data = response.read() # 利用json模組處理json資料格式
print(data)
# 串接、擷取公開資料
謝謝
@@陳裕霖-j1s 沒有看到你一開始的那一段 file.write()?
@@cwpeng-course 老師,請問在哪裡呢?影片中並未提及,還請指正
@@陳裕霖-j1s 你分享給我的錯誤訊息包含 file.write(company["公司名稱"]+"/n") 這段程式碼,但你給我的程式碼中沒有看到 ~
彭彭老師,想問 16:58 中的 data 後面兩個可動列表是甚麽?
意思是[result] 内的[results] 嗎?
另外for 回圈 是不是先把clist 中 "公司名稱" 寫入 “company” , 再印出“company" 並不斷重複?
感謝
那個是基礎字典的語法,字典[鍵] 可以幫我們取到對應的值,字典在 JSON 格式中表面上是一個大括號。
大致上是,迴圈的概念和列表搭配運作,可以取出列表中的每一個資料。
@@cwpeng-course 明白了,感謝🙏🏻
你好 請問 data=response.read()是否等於 data=request.urlopen(src).read()呢?
後方ˇ的寫法是等於同時存取urllib.request模組的open與read方法嗎?
對哦,可以縮寫成後面那個。
先使用 open 方法建立連線,再使用 read 方法取得資料。
可能因為對JSON格式不熟,看完有些疙瘩
特別是這一行:
clist=data["result"]["results"]
小弟選擇的檔案是:新竹市AED心臟電擊器設置地點
opendata.hccg.gov.tw/dataset/d55cf39b-bebc-488f-9a86-4f36e2865d3f/resource/111d2c30-a788-41f9-8ebd-0798fa69f261/download/20180328091122254.json
檔案中沒有"result" & "results" 字眼
將程式碼改成
clist=data #["result"]["results"]將後面的result註解掉
雖然能順利執行 但到底這一行程式碼的作用是什麼?
心裡不舒服 希望彭彭老師能出詳解 感謝!~
建議就閱讀一下 JSON 的格式是怎麼回事。
然後比較我們影片中用的資料,和你連結的這個資料,在階層組織上有什麼不同。
在資料處理的領域上,認真的解讀原始資料是重要的工作之一。
import urllib.request as request
import json
src="opendata.hccg.gov.tw/dataset/d55cf39b-bebc-488f-9a86-4f36e2865d3f/resource/111d2c30-a788-41f9-8ebd-0798fa69f261/download/20180328091122254.json"
with request.urlopen(src) as response :
data = json.load(response)
clist=data
with open("data4.txt","w",encoding="utf-8") as file :
for company in clist:
file.write(company["場所名稱"]+"
"+company["AED放置地點"]+"
")
print(company["場所名稱"]+"
"+company["AED放置地點"]+"
")
不好意思,想請問一下彭彭老師,我突然想到在資料傳輸的過程中會有安全性的問題嗎?
如果網址是 https 開頭通常就大致上安全。
想請問一下,我照著老師的影片示範打,要import的時候出現以下錯誤訊息
import urllib.request
ImportError: No module named response
我用的是MAC系統,python版本是3.9的
我有時候執行某一些老師教的專案也都會像你這樣,確定都有儲存資料,但還是會跳出訊息好像是沒抓到一樣
我的解法都比較怪,會關掉整個程式重開,他就會抓到了.... XDDD
但我也希望知道老師建議的方式
可能是版本問題,Mac 要執行第三版的話要輸入:python3 檔案名稱
彭彭老師我這邊照你的打,底下出現錯誤的訊息,已試過,如將decode("utf-8")移除程式可正常執行。
錯誤訊息如下:
Traceback (most recent call last):
File "open-data.py", line 5, in
print(data)
UnicodeEncodeError: 'cp950' codec can't encode character '\u7c8b' in position 8387: illegal multibyte sequence
主要是看你連線的網頁所用的編碼是什麼,大多數的編碼是 utf-8,以你的錯誤訊息來看,你連線的網頁使用的編碼是比較老舊的 big5,所以會有問題。
移掉 utf-8 會用預設的 big5 處理,就可以了。
澎澎老師,我不知道我為什麼連最基本的連線都做不了,我照著您敲代碼,試著run,但是出錯誤:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1342, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1255, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1301, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1250, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1010, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 950, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1424, in connect
self.sock = self._context.wrap_socket(self.sock,
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _create
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1122)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/bokmanchiu/Library/Mobile Documents/com~apple~CloudDocs/G-python/run.py", line 3, in
with request.urlopen(scr) as response: #連線
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 214, in urlopen
return opener.open(url, data, timeout)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 517, in open
response = self._open(req, data)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 534, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 494, in _call_chain
result = func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1385, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1345, in do_open
raise URLError(err)
urllib.error.URLError:
試著在程式碼的最上方加入以下程式:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
老師您好,想請教為什麼我打開的API網址資料僅有30筆,
無論是將API貼在網址欄中或python中讀取的結果都只有30筆,
但下載下來的檔案卻如同老師影片中的資料一樣有五千多筆?
非常感謝老師的耐心教學,
比起自學書上的教學更為詳細、易懂。
非常感激!!
政府的 API 後來改成一次顯示 30 筆,所以就只能一次取得 30 筆。但若你仔細的看政府 API 的說明,你會發現稍作調整還是可以往後繼續取得後面的 30 筆,或是一次取得更多上限的資料。
@@cwpeng-course 了解,謝謝老師🙏
@@william60216i API網址後面加&limit=1000(縣府最大只能1000)
@@Cheng-po6up 有了,謝謝你~
@@Cheng-po6up 謝謝
老師好,想請問老師
import urllib.request as request
ImportError: No module named request
已下載python3.10.2(mac)
但一直跑出上面的錯誤訊息
想請問老師是哪個部分需要改進
謝謝老師
加上這個
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
#如果您不是在尋找經過驗證的 SSL,那麼只需使用未經驗證的 SSL
版本更新過了
感謝 @Jay 的回應。如果是 Mac 的話,執行時要輸入:python3 檔案名稱
@@q0988138683 太感謝了!
@@q0988138683 同樣感謝大大 小小mac新手路過!!
不好意思,想請問一下老師,若出現ImportError: No module named request是因為沒有安裝request模組嗎?如果是的話,請問該如何安裝?
然後還有,謝謝老師您的講解,非常清楚。
先確認一下模組的名稱應該是 urllib.request 不是 request。這是 Python 3 內建的模組,如果你沒有可能是 Python 版本問題,Mac 電腦執行時請輸入:python3 檔案名稱
很高兴能跟你学python,请问没有api程序接口咋办?
谢谢,试着去找出 API 喽,不然就是看看能不能用爬虫的方式取得资料 ~
老師您好~~~
想與你請教
1. 一直以來寫 VScode 於開頭我都要先加上(這兩句程式碼,才可以實際執行~~(mac pro))
#!/usr/bin/env python
#coding=utf-8#
2.AttributeError: module 'json' has no attribute 'read'
這是不是代表 ,我的Python 沒有 json,那我應該要install 嗎?
這是版本的問題,Mac 在執行時建議使用:python3 檔案名稱
這樣才能使用最新版的 Python 來運作哦 ~
@@cwpeng-course 謝謝 ,彭彭老師的回覆 !!
彭彭老師你好,想請教以下問題:
import urllib.request as request
import json
src="data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=296acfa2-5d93-4706-ad58-e83cc951863c"
with request.urlopen(src) as response:
data=json.load(response)
clist=data["result"]["results"]
data 是一個字典,你在原始的資料中看到最外層是大括號 {}。
data["result"] 也是一個字典,你在原始資料中看到 {"result":{}}。
data["result"]["results"] 是一個列表,你在原始資料中看到 {"result":{"results":[]}} 後面的那一對中括號 []。
這個名字太長了,所以放進新的變數 clist 中。
所以到 clist 之後,才是使用列表的邏輯來抓取資料。
你可以寫 clist[0] 代表列表中的第一筆資料。
@@cwpeng-course 了解了,感謝老師,所以如果把原始資料的內容拿掉就是長這樣嗎?
{"result":{"limit":1000,"offset":0,"count":0,"sort":"","results":[]}}
原來是巢狀字典的概念,之前沒有碰到反應不過來 = =
老師請問一下
import urllib.request as request
import json
src="data.taipei/api/getDatasetInfo/downloadResource?id=8a569b5b-0cb1-4c7f-a064-780b3301354c&rid=9744ea1c-aafb-471c-8bb8-04f398ad415a"
with request.urlopen(src) as response:
data=json.load(response) # 利用 json 模組處理 json 資料格式
print(data)
#抓取特定資料
clist=data["result"]["results"]
for market in clist:
print(market["夜市名稱"]) #取得夜市名稱的資料
with open("market.txt", mode="w", encoding="utf-8") as file: # 開啟檔案並寫入資料
for market in clist:
file.write(market["夜市名稱"]+"
")
會出現以下錯誤訊息
Traceback (most recent call last):
File "crawler.py", line 8, in
clist=data["result"]["results"]
TypeError: list indices must be integers or slices, not str
請問老師這個要如何解決
你抓的資料結構和我範例中的不一樣,可能得配合你抓到的資料來寫 #抓取特定資料 後面的程式。
彭彭的課程 因為那個內湖科技園區的api好像不能夠下載了
@@kaokevin1775 我有發現 QQ 使用新的資料,就必須根據資料的格式來寫新的程式,大致上是這樣的概念。
@@cwpeng-course
老師我後面又找了一個台北市雨量站的API下面是code:
import urllib.request as request
import json
src="117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D"
with request.urlopen(src) as response:
data=json.load(response) # 利用 json 模組處理 json 資料格式
print(data)
#抓取特定資料
clist=data["count"]["data"]# 指定資料所在的字典,由於參考資料改變,這一行僅供參考
for stationName in data:
print(stationName["stationName"]) #取得臺北市雨量站名稱的資料
with open("market.txt", "w", encoding="utf-8") as file: # 開啟檔案並寫入資料
for stationName in data:
file.write(stationName["stationName"]+"
")
但是有個錯誤如下:
TypeError: 'int' object is not subscriptable
請問老師這個問題要怎樣解決
補充:
台北市雨量站及時資料API
117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D
台中大肚台地生物水域調查API
datacenter.taichung.gov.tw/swagger/yaml/387010000A
這兩個跟老師的教材不同是不是就不能使用巢狀字典儲存
@@kaokevin1775 因為這一個資料的結構跟老師的範例不同
他在data下面就是列表了
所以可以參考以下
------------------------------------------------------------------
#串接、擷取公開資料
import urllib.request as request
import json
src="117.56.59.17/OpenData/API/Rain/Get?stationNo=&loginId=open_rain&dataKey=85452C1D"
with request.urlopen(src) as response:
data=json.load(response) #利用json模組讀取資料
#取得觀測站名稱, 並寫入檔案(weather.txt)
slist=data["data"]
with open("weather.txt","w", encoding="utf=8") as file:
for name in slist:
file.write(name["stationName"]+"
")
不好意思
請問澎澎老師 我照著課程上面打 發現錯誤如下
"Traceback (most recent call last):
File "", line 2, in
data=json.load(response)
File "C:\Python34\lib\json\__init__.py", line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Python34\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'"
請問要如何解決呢?
謝謝您的教學影片~
獲益良多~
可能需要你的完整程式碼來判斷原因哦 ~
彭彭老師,請問讀取檔案是用json格式的話,最後在把公司名稱輸出到文字檔的時候不需要使用json嗎?
不需要哦,這是兩個獨立的動作。
讀取檔案,是要配合來源檔案的格式。
輸出檔案,是按照我們自己的想法輸出就可以。
老師您好.各位先進好
我照的老師的程式輸入台灣大學網站
卻出現下列一堆訊號.不知道該從哪裡解決.感謝
Traceback (most recent call last):
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 1350, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1240, in request
self._send_request(method, url, body, headers, encode_chunked)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1286, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1235, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1006, in _send_output
self.send(msg)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 946, in send
self.connect()
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\http\client.py", line 1409, in connect
self.sock = self._context.wrap_socket(self.sock,
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 1040, in _create
self.do_handshake()
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "start.py", line 27, in
with request.urlopen(src) as response:
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 525, in open
response = self._open(req, data)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 542, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 502, in _call_chain
result = func(*args)
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 1393, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "C:\Users\KING\AppData\Local\Programs\Python\Python38-32\lib\urllib
equest.py", line 1353, in do_open
raise URLError(err)
urllib.error.URLError:
是否有程式碼可以參考看看呢?
老師您好,想請問為甚麼把最後 for company in clist: 這段
寫在 with open("0128kk",mode="w",encoding="utf-8")as file:之前 只會跑出一組數字呢?
那組數字可能來自於你程式碼的其他地方,細節要看你的完整程式碼我才能判斷。
原則上這段當然要寫在打開檔案的程式碼裡頭,才會有意義嘍 ~
在公司列表的那個範例中,雖然是json資料格式,
但如果用
data=response.read().decode("utf-8")
的話讀取到的資料好像跟
data=json.load(response) 一樣耶
是兩個都可以用嗎
我知道為什麼了...用type(data)檢查了一下發現用data=response.read().decode("utf-8")得到的data資料格式是字串哈哈
有解決就好 :)
彭彭老師,为什么我写的出现这个提示
UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30687: illegal multibyte sequence
找到原因了,用python3.5自带编译器可以正常显示,但不知道在Visual Studio Code 中怎么修正。
感谢你的分享 :)
我的程式中好像没有用到 gbk 这个编码,抓取的资料包含繁体中文,有点不太能确定你那边的状况,不过你有初步解决问题我觉得很棒。
感谢彭彭老師, 我可能是安装Visual Studio Code的过程中出现了问题,不知道怎么解决
彭彭老師能不能出个安装Visual Studio Code的说明
好哦,有时间的话我会出一下 ~
請問,在一般公開資料的Json格式中並無如: "result":{"limit":1000,"offset":0,"count":5349,"sort":"","results":的寫法,而是直接一連串的{key:value, ...}表單。程式要如何修改以讀取表單?謝謝。
按照資料的不同,去臨機應變。
例如你寫的範例,就直接 data["key"] 就會得到 value 的資料。
彭彭老師 出現這個是甚麼意思 ,GOOGLE翻譯後還是不懂
Traceback (most recent call last):
File "c:\Users\蔡承諺\Documents\python77\python_file\open_data.py", line 12, in
my_list = data["RouteID"]
TypeError: list indices must be integers or slices, not str
他說你的 data 是一個 List 資料結構,中括號 [] 裡面只能使用整數來存取資料哦 ~
澎澎老師我還有一個問題
我抓得到台灣大學原始碼,可是我抓不到其他學校的
老師,想請教,自從我寫了一些會跑出搜尋途徑ex:sys.path、或網路原始碼,在terminal 那裏用cls清除版面後,往上滾動滑鼠發現他們還是在,不知道這樣是不是正常?
不用太在意,他只是個小工具幫助你讓終端機清空視覺舒服而已,不用特別去轉動,就算轉動看到了之前的內容也不會有影響。
可以試試"統編"會發現跑不出來喔
因為有隻蟲藏在裡面摟 呵呵
是的,裡面有隻蟲 XDDDD
夷,為什麼我的跑得出來??
這隻蟲子被堪稱史上最兇殘的防偽神奇寶貝沒有之一 趕緊收服牠吧
收服之後把牠有規律的放個幾千隻藏在你的文章里就能知道你的文章會被copy到哪裡去了
@@ud1279 我還是沒有很清楚ㄟ,可以麻煩樓主展示一下蟲子長甚麼樣子嗎?
@@Grapefruit-qs8yo5rg4t 在"統編"這句話當中藏了一隻沒有軀殼的蟲蟲,因為沒有軀殼所以很難形容牠的長相,
總之你去
data.taipei/opendata/datalist/apiAccess?scope=resourceAquire&rid=296acfa2-5d93-4706-ad58-e83cc951863c
找到"統編"把 "統 copy到筆記本,然後按方向鍵的左右,你會發現要多按一下,因為牠就藏在這兩個字之間,趕緊收伏牠吧
老師及各位先進們, 請教 import open-data 會無法匯入, python不接受檔案名稱有減號( - ), 請問遇到這樣的檔名該如何處理?
可能就,不要使用減號嘍 :)
我想要請問我在連線台大網址的時候出現異常,但填入例如google網址的時候就正常運作,請問是因為原始碼中有中文沒有辦法進行運作嗎? 想知道有什麼方式可以解決嗎呢?(有找到parse和quote,但不知道如何使用?)
謝謝彭彭老師
可能要把程式碼貼出來看看比較有機會幫得上忙 ~
為什麼 for 迴圈 會突然有一個company ? 是在哪裡定義的?
就是定義在 for 迴圈的語法,那裡就是定義
彭彭老師您好
我在編譯方面有錯誤,實在解決不了,可以幫我看一下嗎 (我用的是mac電腦)謝謝
終端機顯示:
wangzihaode-MacBook-Air:python tranning hao0804$ python open-data.py
Traceback (most recent call last):
File "open-data.py", line 1, in
import urllib.request as request
ImportError: No module named request
很可能你使用的是 Python 2 的版本問題,如果是 Mac 電腦,確認有安裝新版的 Python 之後,執行時使用:python3 檔案名稱