2026年6月1日 星期一

把近日的漁產品交易行情儲存到Excel檔案中

上一篇文章:把近日的漁產品交易行情儲存到Excel檔案中

執行結果:

  File "C:/cmlin/虎尾科技大學/112-2/電腦軟體應用/範例檔案/ch14/test2.py", line 7, in <module>

    r = requests.get('https://data.moa.gov.tw/Service/OpenData/FromM/AquaticTransData.aspx')

  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\requests\api.py", line 73, in get

    return request("get", url, params=params, **kwargs)

  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\requests\api.py", line 59, in request

    return session.request(method=method, url=url, **kwargs)

  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\requests\sessions.py", line 589, in request

    resp = self.send(prep, **send_kwargs)

  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\requests\sessions.py", line 703, in send

    r = adapter.send(request, **kwargs)

  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\requests\adapters.py", line 675, in send

    raise SSLError(e, request=request)

requests.exceptions.SSLError: HTTPSConnectionPool(host='data.moa.gov.tw', port=443): Max retries exceeded with url: /Service/OpenData/FromM/AquaticTransData.aspx (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Subject Key Identifier (_ssl.c:1081)')))

範例一、修正後的程式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import requests
import json
from openpyxl import Workbook


# 從URL取得JSON資料
r = requests.get('https://data.moa.gov.tw/Service/OpenData/FromM/AquaticTransData.aspx', verify=False)
json_data = json.loads(r.text)

# 建立一個新的Workbook
wb = Workbook()
ws = wb.active
ws.title = "漁產品交易行情"

# 寫入標題行
headers = ['交易日期', '品種代碼', '魚貨名稱', '市場名稱', '上價', '中價', '下價', '交易量', '平均價']
ws.append(headers)

# 寫入資料
for item in json_data:
    row = [
        item.get('交易日期'),
        item.get('品種代碼'),
        item.get('魚貨名稱'),
        item.get('市場名稱'),
        item.get('上價'),
        item.get('中價'),
        item.get('下價'),
        item.get('交易量'),
        item.get('平均價')
    ]
    ws.append(row)

# 儲存到Excel檔案
wb.save('AquaticTransData.xlsx')

print("資料已儲存到 AquaticTransData.xlsx")

執行結果:
Warning (from warnings module):
  File "C:\Users\cheng-min\AppData\Local\Programs\Python\Python314\Lib\site-packages\urllib3\connectionpool.py", line 1097
    warnings.warn(
InsecureRequestWarning: Unverified HTTPS request is being made to host 'data.moa.gov.tw'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
資料已儲存到 AquaticTransData.xlsx

範例二、再修訂把警告訊息也拿掉

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import requests
import json
from openpyxl import Workbook
import urllib3

# 關閉 HTTPS 警告
urllib3.disable_warnings()

# 從URL取得JSON資料
r = requests.get('https://data.moa.gov.tw/Service/OpenData/FromM/AquaticTransData.aspx', verify=False)
json_data = json.loads(r.text)

# 建立一個新的Workbook
wb = Workbook()
ws = wb.active
ws.title = "漁產品交易行情"

# 寫入標題行
headers = ['交易日期', '品種代碼', '魚貨名稱', '市場名稱', '上價', '中價', '下價', '交易量', '平均價']
ws.append(headers)

# 寫入資料
for item in json_data:
    row = [
        item.get('交易日期'),
        item.get('品種代碼'),
        item.get('魚貨名稱'),
        item.get('市場名稱'),
        item.get('上價'),
        item.get('中價'),
        item.get('下價'),
        item.get('交易量'),
        item.get('平均價')
    ]
    ws.append(row)

# 儲存到Excel檔案
wb.save('AquaticTransData.xlsx')

print("資料已儲存到 AquaticTransData.xlsx")

執行結果:
資料已儲存到 AquaticTransData.xlsx

AquaticTransData.xlsx的部份內容:



沒有留言:

張貼留言