用上述文章內的程式為基礎,讓ChatGPT產生漁貨交易的加上總交易量和總平均價的程式。
提示詞:加上總交易量和總平均價的程式[並附上參考文章的程式]
ChatGPT產生的程式如下:
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 41 42 43 44 45 46 47 48 49 50 51 52 53 | import requests
import json
from openpyxl import Workbook
from openpyxl.styles import Font
# 從URL取得JSON資料
r = requests.get('https://data.moa.gov.tw/Service/OpenData/FromM/AquaticTransData.aspx')
json_data = json.loads(r.text)
# 建立一個新的Workbook
wb = Workbook()
ws = wb.active
ws.title = "漁產品交易行情"
# 寫入標題行
headers = ['交易日期', '品種代碼', '魚貨名稱', '市場名稱', '交易量', '平均價']
ws.append(headers)
# 初始化統計變數
total_volume = 0.0
weighted_price_sum = 0.0
# 寫入資料
for item in json_data:
if ('田蛙' in item['魚貨名稱'] or '午仔魚' in item['魚貨名稱']) and ('台中' not in item['市場名稱'] and '台北' not in item['市場名稱']):
try:
volume = float(item.get('交易量', 0))
price = float(item.get('平均價', 0))
except ValueError:
continue # 忽略格式錯誤的資料
row = [
item.get('交易日期'),
item.get('品種代碼'),
item.get('魚貨名稱'),
item.get('市場名稱'),
volume,
price
]
ws.append(row)
total_volume += volume
weighted_price_sum += volume * price
# 計算加權平均價(總價值 / 總交易量)
average_price = weighted_price_sum / total_volume if total_volume > 0 else 0
# 插入統計結果
ws.append([]) # 空行
ws.append(['總計', '', '', '', total_volume, round(average_price, 2)])
# 儲存到Excel檔案
wb.save('AquaticTransData.xlsx')
|
執行結果(AquaticTransData.xlsx):
沒有留言:
張貼留言