顯示具有 交易行情 標籤的文章。 顯示所有文章
顯示具有 交易行情 標籤的文章。 顯示所有文章

2022年7月3日 星期日

Mezzanine更新到6.0,百香果交易行情網站主題樣版修復說明

 在去年我們發表"十個步驟輕輕鬆鬆利用Mezzanine打造百香果交易行情網站",事隔一年,Mezzanine從4.3.1升級到6.0,在步驟7啟動畫面時,發生TemplateSyntavError錯誤如下:


此時必須修改editable_form.html
{% load i18n staticfiles %}
變成
{% load i18n static %}
因為新版改不在支援staticfiles

修改base.html
{% load pages_tags mezzanine_tags i18n staticfiles %}
變成
{% load pages_tags mezzanine_tags i18n static %}

修改index.html
{% load i18n  mezzanine_tags staticfiles%}
變成
{% load i18n  mezzanine_tags static%}
另外在第57行中的iframe影片,也要替換掉。
這樣就可以看到很美的主題畫面。




2021年7月18日 星期日

此蟲非蟲

 2021年7月14日正在教Python/Dajngo百香果程式設計微學分,上到"用Python來撰寫顯示今天百香果市場交易情形的程式",程式居然無法順利執行,於是我們展開找出百香果市場交易情形的程式無法順利執行的"蟲"。

很懷念兩年前撰寫"用Python來撰寫顯示今天百香果市場交易情形的程式",其程式碼如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import requests
import json
r = requests.get('https://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx')
text = json.loads(r.text)
for row in text:
    if '百香果' in row['作物名稱']:
        print ('交易日期:'+row['交易日期'])
        print ('作物名稱:'+row['作物名稱'])
        print ('市場名稱:'+row['市場名稱'])
        print ('平均價:'+str(row['平均價']))
        print ('交易量:'+str(row['交易量']))

執行結果:

居然有TypeError: argument of type 'NoneType' is not iterable的問題,這時當然要請教谷歌大神,找到解答,有三種方式,前兩種在介紹in和==的差別,而第三種方法中,採用if先判斷物件是否是為None,於是我們選擇了第三種。

新增2行程式,程式修改如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import requests
import json
r = requests.get('https://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx')
text = json.loads(r.text)
for row in text:
    if row['作物名稱'] is None:
        continue;
    if '百香果' in row['作物名稱']:
        print ('交易日期:'+row['交易日期'])
        print ('作物名稱:'+row['作物名稱'])
        print ('市場名稱:'+row['市場名稱'])
        print ('平均價:'+str(row['平均價']))
        print ('交易量:'+str(row['交易量']))

執行結果為:
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:台北二
平均價:93.4
交易量:237.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:台北二
平均價:60.8
交易量:4121.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:台北一
平均價:44.9
交易量:149.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:台北一
平均價:58.6
交易量:5593.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:板橋區
平均價:25.0
交易量:15.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:板橋區
平均價:24.1
交易量:947.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:三重區
平均價:33.9
交易量:202.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:三重區
平均價:42.8
交易量:8561.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:宜蘭市
平均價:65.0
交易量:1400.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:桃農
平均價:45.0
交易量:52.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:桃農
平均價:35.9
交易量:406.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:台中市
平均價:17.0
交易量:30.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:台中市
平均價:50.5
交易量:8907.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:豐原區
平均價:42.75
交易量:414.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:嘉義市
平均價:38.0
交易量:800.0
交易日期:110.07.18
作物名稱:百香果-其他
市場名稱:高雄市
平均價:42.4
交易量:684.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:高雄市
平均價:51.4
交易量:1833.0
交易日期:110.07.18
作物名稱:百香果-改良種
市場名稱:鳳山區
平均價:28.4
交易量:2650.0

為什麼資料中會有None,於是我們檢視農委會介接程式送出來的資料,真的有none的資料。


學習Python雖然有好玩,但會經常碰到版本或資料格式上的問題,要有耐心地找資料,最重要的是要有永不放棄的毅力和決心。

2020年12月20日 星期日

用pyecharts套件來繪製百香果交易行情圖

資料來源:https://amis.afa.gov.tw/fruit/FruitProdDayTransInfo.aspx

查詢日期:109/12/20

查詢結果:


設計程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from pyecharts.charts import Bar
from pyecharts import options as opts

bar = (
    Bar()
    .add_xaxis(["台北二", "台北一", "板橋區", "三重區", "宜蘭市", "桃農","台中市", "嘉義市", "高雄市", "鳯山區"])
    .add_yaxis("其他", [32.5, 47.8, 0, 25.5, 0, 0, 30.0, 0, 0, 0, 0])
    .add_yaxis("改良種", [34.9, 28.8, 20.0, 25.5, 30.0, 15.7, 39.8, 35.0, 39.0, 25.4])
    .set_global_opts(title_opts=opts.TitleOpts(title="百香果交易行情(109/12/20)"))
)
bar.render()

執行結果:

增加爬蟲功能之程式:

 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
import requests
import json
r = requests.get('https://data.coa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx')
text = json.loads(r.text)
X=[]
Y1=[]
Y2=[]
for row in text:
    if '百香果-其他' in row['作物名稱']:
        if row['市場名稱'] in X:
            Y1[X.index(row['市場名稱'])]=row['平均價']
        else:
            X.append(row['市場名稱'])
            Y1.append(row['平均價'])
            Y2.append(0)
    if '百香果-改良種' in row['作物名稱']:
        if row['市場名稱'] in X:
            Y2[X.index(row['市場名稱'])]=row['平均價']
        else:
            X.append(row['市場名稱'])
            Y1.append(0)
            Y2.append(row['平均價'])
from pyecharts.charts import Bar
from pyecharts import options as opts

bar = (
    Bar()
    .add_xaxis(X)
    .add_yaxis("其他", Y1)
    .add_yaxis("改良種", Y2)
    .set_global_opts(title_opts=opts.TitleOpts(title="百香果交易行情(109/12/20)"))
)
bar.render()

執行結果:
同上

Python其他pyecharts相關套件:https://github.com/ecomfe/awesome-echarts#python

2019年3月26日 星期二

使用Python/pyecharts四行程式搞定百香果近8年的交易行情圖

首先安裝pyechart套件。
pip install pyecharts
再安裝pyecharts_snapshot套件
pip install pyecharts_snapshot
近8年百香果交易價格的程式碼:
from pyecharts import Bar

bar = Bar("產品交易價量走勢圖", "100年到107年")
bar.add("百香果", ["100年", "101年", "102年", "103年", "104年", "105年", "106年", "107年"], [24.8, 40.2, 39.8, 38.9, 37.1, 54.4, 48.8, 36.7])
bar.render() #產生HTML文件

執行結果:
增加交易量:
from pyecharts import Bar

bar = Bar("百香果產品交易價量走勢圖", "100年到107年")
attr=["100年", "101年", "102年", "103年", "104年", "105年", "106年", "107年"]
bar.add("平均價(元/公斤)", attr, [24.8, 40.2, 39.8, 38.9, 37.1, 54.4, 48.8, 36.7])
bar.add("交易量(公斤)", attr, [4633125.5, 4088659.4, 4525197, 6579937.4, 8522771.8, 8860383.9, 8916824.2, 11390231.7])
bar.render() #產生HTML文件

執行結果:
交易量
交易價