顯示具有 落花生 標籤的文章。 顯示所有文章
顯示具有 落花生 標籤的文章。 顯示所有文章

2024年5月7日 星期二

使用Python和Django設計落花生農產品交易行情網站


參考文章:使用Python和Django設計百香果農產品交易行情網站

1.安裝Django套件


2.建立Django專案和應用程式


3.開啟瀏覽器,輸入127.0.0.1:8000


3.修改peanut/peanut/settings.py,黃底字是新增的指令。

  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
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
"""
Django settings for peanut project.

Generated by 'django-admin startproject' using Django 5.0.5.

For more information on this file, see
https://docs.djangoproject.com/en/5.0/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""

from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure--zjwskz2!r4a(-)ck#db$_44trhc%b0v()e(vd9_2n)srub#cl'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'peanutapp',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ]

ROOT_URLCONF = 'peanut.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'peanut.wsgi.application'


# Database
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


# Password validation
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/

LANGUAGE_CODE = 'zh-hant'

TIME_ZONE = 'Asia/Taipei'

USE_I18N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/

STATIC_URL = 'static/'
STATIC_DIRS = [
    BASE_DIR / 'static',
]
# Default primary key field type
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

4.修改peanut/peanut/urls.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""
URL configuration for peanut project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/5.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from peanutapp.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
]

5.新增index函式在peanut/peanutapp/views.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from django.shortcuts import render
import requests
import json

def index(request):
    r = requests.get('https://data.moa.gov.tw/Service/OpenData/FromM/FarmTransData.aspx')
    peanuts = json.loads(r.text)
    rows = []
    for row in peanuts:
        if row['作物名稱'] is None:
            continue
        if '落花生' in row['作物名稱']:
            rows.append(row)
    return render(request, "index.html", locals())

6.新增index.html到peanut/templates

 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
<html>
<head>
	<TITLE>
		尚虎雲產銷平台
	</TITLE>
</head>
<body>
	<center>
		<h1>尚虎雲產銷平台</h1>
		<h2>執行單位:<a href="http://www.nfu.edu.tw">國立虎尾科技大學 電機資訊學院</a></h2>
	</center>
	{% for row in rows %}
		{% if forloop.first %}
			<table style='width:100%' border='1'>
				<caption><h2>落花生市場交易情形</h2></caption>
				<tr>
					<th>交易日期</th>
					<th>作物代號</th>
					<th>作物名稱</th>
					<th>市場代碼</th>
					<th>市場名稱</th>
					<th>上價</th>
					<th>中價</th>
					<th>下價</th>
					<th>平均價</th>
					<th>交易量</th>
				</tr>
		{% endif %}
				<tr>
					<td><center>{{ row.交易日期 }}</center></td>
					<td><center>{{ row.作物代號 }}</center></td>
					<td><center>{{ row.作物名稱 }}</center></td>
					<td><center>{{ row.市場代號 }}</center></td>
					<td><center>{{ row.市場名稱 }}</center></td>
					<td><center>{{ row.上價 }}</center></td>
					<td><center>{{ row.中價 }}</center></td>
					<td><center>{{ row.下價 }}</center></td>
					<td><center>{{ row.平均價 }}</center></td>
					<td><center>{{ row.交易量 }}</center></td>
				</tr>
		{% if forloop.last %}
			</table>
		{% endif %}
	{% endfor %}
</body>

</html>

7.執行結果:
如文章開頭的圖片。

2023年7月30日 星期日

用Python來分析全國落花生農情數據,雲林縣第一,收量佔全國的76.22%

 資料來源:農情報告資源網

111年全年作落花生各縣市規模別排序表:

縣市鄉鎮名稱種植面積(公頃)收穫面積(公頃)每公頃收量(公斤)收量(公斤)
雲林縣13,465.9513,465.952,88738,874,464
彰化縣3,160.143,160.142,5648,103,016
台南市344.32344.322,235769,508
屏東縣327.33327.332,557836,847
花蓮縣245.64245.621,700417,647
台中市225.07225.071,751394,171
嘉義縣219.38219.382,383522,816
高雄市179.27179.272,272407,336
澎湖縣135.18135.18930125,677
宜蘭縣66.6466.643,847256,396
苗栗縣52.6452.642,325122,362
新北市33.6933.691,54652,085
台東縣23.6823.681,79642,538
金門縣17.1417.141,94033,252
桃園市7.727.721,84014,205
新竹縣7.587.582,18116,532
南投縣5.395.392,08211,224
新竹市1.751.751,8003,150
嘉義市0.970.972,0001,940
基隆市0.020.021,40028
        在111年的農情數據中,我們可以看到全國各地落花生的種植面積、收穫面積、每公頃收量以及收量等相關數據。以下是對這些數據的一些分析:

  • 種植面積與收穫面積:
雲林縣擁有全國最大的落花生種植面積,達到13,465.95公頃,同時也擁有相等的收穫面積。
除了雲林縣,彰化縣、台南市和屏東縣的落花生種植面積也比較大,分別約在3,000至13,000公頃之間。
  • 每公頃收量:
宜蘭縣以驚人的3,847公斤每公頃收量位居全國之首。這顯示宜蘭縣的落花生種植農民採用了高效的種植和管理技術。
其他地區的每公頃收量也大致在1,700至2,500公斤之間,這表明全國各地的農民都在不同程度上實施著有效的農業措施。
  • 收量:
由於雲林縣種植面積巨大且每公頃收量高,因此其落花生收量榮登全國之首,達到38,874,464公斤。
宜蘭縣雖然種植面積較小,但由於高的每公頃收量,其收量達到256,396公斤,僅次於雲林縣。
基隆市的收量則是最低的,僅為28公斤。這可以解釋為基隆市的落花生種植面積極其有限,且每公頃收量也較低。
  • 縣市間的差異:
由於氣候、土壤條件和農業技術的差異,各地區的落花生農情數據存在著顯著差異。
雲林縣、彰化縣、台南市和屏東縣是落花生主要種植區,且佔了全國絕大多數的種植面積和收量。
基隆市和嘉義市的種植面積和收量則相對較小,可能受限於地理條件和土地供應等因素。

        總的來說,在111年的全國落花生農情數據中,雲林縣以其龐大的種植面積和高收量成為全國的主要生產者,而宜蘭縣則展現了高效的種植技術,使其每公頃收量居全國之首。這些數據反映了各地區農業發展的情況和挑戰,並為進一步改進農業生產提供了重要的參考。





範例一:印出全國落花生的農情資訊

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
data = {
    "雲林縣": {"種植面積": 13465.95, "收穫面積": 13465.95, "每公頃收量": 2887, "收量": 38874464},
    "彰化縣": {"種植面積": 3160.14, "收穫面積": 3160.14, "每公頃收量": 2564, "收量": 8103016},
    "台南市": {"種植面積": 344.32, "收穫面積": 344.32, "每公頃收量": 2235, "收量": 769508},
    "屏東縣": {"種植面積": 327.33, "收穫面積": 327.33, "每公頃收量": 2557, "收量": 836847},
    "花蓮縣": {"種植面積": 245.64, "收穫面積": 245.62, "每公頃收量": 1700, "收量": 417647},
    "台中市": {"種植面積": 225.07, "收穫面積": 225.07, "每公頃收量": 1751, "收量": 394171},
    "嘉義縣": {"種植面積": 219.38, "收穫面積": 219.38, "每公頃收量": 2383, "收量": 522816},
    "高雄市": {"種植面積": 179.27, "收穫面積": 179.27, "每公頃收量": 2272, "收量": 407336},
    "澎湖縣": {"種植面積": 135.18, "收穫面積": 135.18, "每公頃收量": 930, "收量": 125677},
    "宜蘭縣": {"種植面積": 66.64, "收穫面積": 66.64, "每公頃收量": 3847, "收量": 256396},
    "苗栗縣": {"種植面積": 52.64, "收穫面積": 52.64, "每公頃收量": 2325, "收量": 122362},
    "新北市": {"種植面積": 33.69, "收穫面積": 33.69, "每公頃收量": 1546, "收量": 52085},
    "台東縣": {"種植面積": 23.68, "收穫面積": 23.68, "每公頃收量": 1796, "收量": 42538},
    "金門縣": {"種植面積": 17.14, "收穫面積": 17.14, "每公頃收量": 1940, "收量": 33252},
    "桃園市": {"種植面積": 7.72, "收穫面積": 7.72, "每公頃收量": 1840, "收量": 14205},
    "新竹縣": {"種植面積": 7.58, "收穫面積": 7.58, "每公頃收量": 2181, "收量": 16532},
    "南投縣": {"種植面積": 5.39, "收穫面積": 5.39, "每公頃收量": 2082, "收量": 11224},
    "新竹市": {"種植面積": 1.75, "收穫面積": 1.75, "每公頃收量": 1800, "收量": 3150},
    "嘉義市": {"種植面積": 0.97, "收穫面積": 0.97, "每公頃收量": 2000, "收量": 1940},
    "基隆市": {"種植面積": 0.02, "收穫面積": 0.02, "每公頃收量": 1400, "收量": 28}
}

print(data)

執行結果:
{'雲林縣': {'種植面積': 13465.95, '收穫面積': 13465.95, '每公頃收量': 2887, '收量': 38874464}, '彰化縣': {'種植面積': 3160.14, '收穫面積': 3160.14, '每公頃收量': 2564, '收量': 8103016}, '台南市': {'種植面積': 344.32, '收穫面積': 344.32, '每公頃收量': 2235, '收量': 769508}, '屏東縣': {'種植面積': 327.33, '收穫面積': 327.33, '每公頃收量': 2557, '收量': 836847}, '花蓮縣': {'種植面積': 245.64, '收穫面積': 245.62, '每公頃收量': 1700, '收量': 417647}, '台中市': {'種植面積': 225.07, '收穫面積': 225.07, '每公頃收量': 1751, '收量': 394171}, '嘉義縣': {'種植面積': 219.38, '收穫面積': 219.38, '每公頃收量': 2383, '收量': 522816}, '高雄市': {'種植面積': 179.27, '收穫面積': 179.27, '每公頃收量': 2272, '收量': 407336}, '澎湖縣': {'種植面積': 135.18, '收穫面積': 135.18, '每公頃收量': 930, '收量': 125677}, '宜蘭縣': {'種植面積': 66.64, '收穫面積': 66.64, '每公頃收量': 3847, '收量': 256396}, '苗栗縣': {'種植面積': 52.64, '收穫面積': 52.64, '每公頃收量': 2325, '收量': 122362}, '新北市': {'種植面積': 33.69, '收穫面積': 33.69, '每公頃收量': 1546, '收量': 52085}, '台東縣': {'種植面積': 23.68, '收穫面積': 23.68, '每公頃收量': 1796, '收量': 42538}, '金門縣': {'種植面積': 17.14, '收穫面積': 17.14, '每公頃收量': 1940, '收量': 33252}, '桃園市': {'種植面積': 7.72, '收穫面積': 7.72, '每公頃收量': 1840, '收量': 14205}, '新竹縣': {'種植面積': 7.58, '收穫面積': 7.58, '每公頃收量': 2181, '收量': 16532}, '南投縣': {'種植面積': 5.39, '收穫面積': 5.39, '每公頃收量': 2082, '收量': 11224}, '新竹市': {'種植面積': 1.75, '收穫面積': 1.75, '每公頃收量': 1800, '收量': 3150}, '嘉義市': {'種植面積': 0.97, '收穫面積': 0.97, '每公頃收量': 2000, '收量': 1940}, '基隆市': {'種植面積': 0.02, '收穫面積': 0.02, '每公頃收量': 1400, '收量': 28}}

範例二:格式印出全國落花生的農情資訊


 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
data = {
    "雲林縣": {"種植面積": 13465.95, "收穫面積": 13465.95, "每公頃收量": 2887, "收量": 38874464},
    "彰化縣": {"種植面積": 3160.14, "收穫面積": 3160.14, "每公頃收量": 2564, "收量": 8103016},
    "台南市": {"種植面積": 344.32, "收穫面積": 344.32, "每公頃收量": 2235, "收量": 769508},
    "屏東縣": {"種植面積": 327.33, "收穫面積": 327.33, "每公頃收量": 2557, "收量": 836847},
    "花蓮縣": {"種植面積": 245.64, "收穫面積": 245.62, "每公頃收量": 1700, "收量": 417647},
    "台中市": {"種植面積": 225.07, "收穫面積": 225.07, "每公頃收量": 1751, "收量": 394171},
    "嘉義縣": {"種植面積": 219.38, "收穫面積": 219.38, "每公頃收量": 2383, "收量": 522816},
    "高雄市": {"種植面積": 179.27, "收穫面積": 179.27, "每公頃收量": 2272, "收量": 407336},
    "澎湖縣": {"種植面積": 135.18, "收穫面積": 135.18, "每公頃收量": 930, "收量": 125677},
    "宜蘭縣": {"種植面積": 66.64, "收穫面積": 66.64, "每公頃收量": 3847, "收量": 256396},
    "苗栗縣": {"種植面積": 52.64, "收穫面積": 52.64, "每公頃收量": 2325, "收量": 122362},
    "新北市": {"種植面積": 33.69, "收穫面積": 33.69, "每公頃收量": 1546, "收量": 52085},
    "台東縣": {"種植面積": 23.68, "收穫面積": 23.68, "每公頃收量": 1796, "收量": 42538},
    "金門縣": {"種植面積": 17.14, "收穫面積": 17.14, "每公頃收量": 1940, "收量": 33252},
    "桃園市": {"種植面積": 7.72, "收穫面積": 7.72, "每公頃收量": 1840, "收量": 14205},
    "新竹縣": {"種植面積": 7.58, "收穫面積": 7.58, "每公頃收量": 2181, "收量": 16532},
    "南投縣": {"種植面積": 5.39, "收穫面積": 5.39, "每公頃收量": 2082, "收量": 11224},
    "新竹市": {"種植面積": 1.75, "收穫面積": 1.75, "每公頃收量": 1800, "收量": 3150},
    "嘉義市": {"種植面積": 0.97, "收穫面積": 0.97, "每公頃收量": 2000, "收量": 1940},
    "基隆市": {"種植面積": 0.02, "收穫面積": 0.02, "每公頃收量": 1400, "收量": 28}
}

# 格式化印出資料
for city, info in data.items():
    print(f"縣市鄉鎮名稱: {city}")
    print(f"種植面積: {info['種植面積']} 公頃")
    print(f"收穫面積: {info['收穫面積']} 公頃")
    print(f"每公頃收量: {info['每公頃收量']} 公斤")
    print(f"收量: {info['收量']} 公斤")
    print()

執行結果:
縣市鄉鎮名稱: 雲林縣
種植面積: 13465.95 公頃
收穫面積: 13465.95 公頃
每公頃收量: 2887 公斤
收量: 38874464 公斤

縣市鄉鎮名稱: 彰化縣
種植面積: 3160.14 公頃
收穫面積: 3160.14 公頃
每公頃收量: 2564 公斤
收量: 8103016 公斤

縣市鄉鎮名稱: 台南市
種植面積: 344.32 公頃
收穫面積: 344.32 公頃
每公頃收量: 2235 公斤
收量: 769508 公斤

縣市鄉鎮名稱: 屏東縣
種植面積: 327.33 公頃
收穫面積: 327.33 公頃
每公頃收量: 2557 公斤
收量: 836847 公斤

縣市鄉鎮名稱: 花蓮縣
種植面積: 245.64 公頃
收穫面積: 245.62 公頃
每公頃收量: 1700 公斤
收量: 417647 公斤

縣市鄉鎮名稱: 台中市
種植面積: 225.07 公頃
收穫面積: 225.07 公頃
每公頃收量: 1751 公斤
收量: 394171 公斤

縣市鄉鎮名稱: 嘉義縣
種植面積: 219.38 公頃
收穫面積: 219.38 公頃
每公頃收量: 2383 公斤
收量: 522816 公斤

縣市鄉鎮名稱: 高雄市
種植面積: 179.27 公頃
收穫面積: 179.27 公頃
每公頃收量: 2272 公斤
收量: 407336 公斤

縣市鄉鎮名稱: 澎湖縣
種植面積: 135.18 公頃
收穫面積: 135.18 公頃
每公頃收量: 930 公斤
收量: 125677 公斤

縣市鄉鎮名稱: 宜蘭縣
種植面積: 66.64 公頃
收穫面積: 66.64 公頃
每公頃收量: 3847 公斤
收量: 256396 公斤

縣市鄉鎮名稱: 苗栗縣
種植面積: 52.64 公頃
收穫面積: 52.64 公頃
每公頃收量: 2325 公斤
收量: 122362 公斤

縣市鄉鎮名稱: 新北市
種植面積: 33.69 公頃
收穫面積: 33.69 公頃
每公頃收量: 1546 公斤
收量: 52085 公斤

縣市鄉鎮名稱: 台東縣
種植面積: 23.68 公頃
收穫面積: 23.68 公頃
每公頃收量: 1796 公斤
收量: 42538 公斤

縣市鄉鎮名稱: 金門縣
種植面積: 17.14 公頃
收穫面積: 17.14 公頃
每公頃收量: 1940 公斤
收量: 33252 公斤

縣市鄉鎮名稱: 桃園市
種植面積: 7.72 公頃
收穫面積: 7.72 公頃
每公頃收量: 1840 公斤
收量: 14205 公斤

縣市鄉鎮名稱: 新竹縣
種植面積: 7.58 公頃
收穫面積: 7.58 公頃
每公頃收量: 2181 公斤
收量: 16532 公斤

縣市鄉鎮名稱: 南投縣
種植面積: 5.39 公頃
收穫面積: 5.39 公頃
每公頃收量: 2082 公斤
收量: 11224 公斤

縣市鄉鎮名稱: 新竹市
種植面積: 1.75 公頃
收穫面積: 1.75 公頃
每公頃收量: 1800 公斤
收量: 3150 公斤

縣市鄉鎮名稱: 嘉義市
種植面積: 0.97 公頃
收穫面積: 0.97 公頃
每公頃收量: 2000 公斤
收量: 1940 公斤

縣市鄉鎮名稱: 基隆市
種植面積: 0.02 公頃
收穫面積: 0.02 公頃
每公頃收量: 1400 公斤
收量: 28 公斤

範例三:雲林縣的種植面積佔總種植面積的比率

 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
def calculate_planting_ratio(data, county):
    # 檢查所查詢的縣市是否存在於資料中
    if county not in data:
        return "找不到指定的縣市資料"

    # 取得雲林縣的種植面積
    planting_area = data[county].get("種植面積", 0)

    # 總的種植面積
    total_planting_area = sum(info.get("種植面積", 0) for info in data.values())

    # 計算比率
    ratio = (planting_area / total_planting_area) * 100

    return ratio

data = {
    "雲林縣": {"種植面積": 13465.95, "收穫面積": 13465.95, "每公頃收量": 2887, "收量": 38874464},
    "彰化縣": {"種植面積": 3160.14, "收穫面積": 3160.14, "每公頃收量": 2564, "收量": 8103016},
    "台南市": {"種植面積": 344.32, "收穫面積": 344.32, "每公頃收量": 2235, "收量": 769508},
    "屏東縣": {"種植面積": 327.33, "收穫面積": 327.33, "每公頃收量": 2557, "收量": 836847},
    "花蓮縣": {"種植面積": 245.64, "收穫面積": 245.62, "每公頃收量": 1700, "收量": 417647},
    "台中市": {"種植面積": 225.07, "收穫面積": 225.07, "每公頃收量": 1751, "收量": 394171},
    "嘉義縣": {"種植面積": 219.38, "收穫面積": 219.38, "每公頃收量": 2383, "收量": 522816},
    "高雄市": {"種植面積": 179.27, "收穫面積": 179.27, "每公頃收量": 2272, "收量": 407336},
    "澎湖縣": {"種植面積": 135.18, "收穫面積": 135.18, "每公頃收量": 930, "收量": 125677},
    "宜蘭縣": {"種植面積": 66.64, "收穫面積": 66.64, "每公頃收量": 3847, "收量": 256396},
    "苗栗縣": {"種植面積": 52.64, "收穫面積": 52.64, "每公頃收量": 2325, "收量": 122362},
    "新北市": {"種植面積": 33.69, "收穫面積": 33.69, "每公頃收量": 1546, "收量": 52085},
    "台東縣": {"種植面積": 23.68, "收穫面積": 23.68, "每公頃收量": 1796, "收量": 42538},
    "金門縣": {"種植面積": 17.14, "收穫面積": 17.14, "每公頃收量": 1940, "收量": 33252},
    "桃園市": {"種植面積": 7.72, "收穫面積": 7.72, "每公頃收量": 1840, "收量": 14205},
    "新竹縣": {"種植面積": 7.58, "收穫面積": 7.58, "每公頃收量": 2181, "收量": 16532},
    "南投縣": {"種植面積": 5.39, "收穫面積": 5.39, "每公頃收量": 2082, "收量": 11224},
    "新竹市": {"種植面積": 1.75, "收穫面積": 1.75, "每公頃收量": 1800, "收量": 3150},
    "嘉義市": {"種植面積": 0.97, "收穫面積": 0.97, "每公頃收量": 2000, "收量": 1940},
    "基隆市": {"種植面積": 0.02, "收穫面積": 0.02, "每公頃收量": 1400, "收量": 28}
}

county_name = "雲林縣"
result = calculate_planting_ratio(data, county_name)
print(f"{county_name}的種植面積佔總種植面積的 {result:.2f}%")

執行結果:
雲林縣的種植面積佔總種植面積的 72.71%

範例四:雲林縣的收量佔總收量

 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
def calculate_ratio(data, county):
    # 檢查所查詢的縣市是否存在於資料中
    if county not in data:
        return "找不到指定的縣市資料"

    # 取得指定縣市的資料
    county_data = data[county]

    # 總的收量和總的種植面積
    total_harvest = sum(info.get("收量", 0) for info in data.values())
    total_planting_area = sum(info.get("種植面積", 0) for info in data.values())

    # 計算指定縣市的收量和種植面積比率
    harvest_ratio = (county_data.get("收量", 0) / total_harvest) * 100
    planting_ratio = (county_data.get("種植面積", 0) / total_planting_area) * 100

    return harvest_ratio, planting_ratio

data = {
    "雲林縣": {"種植面積": 13465.95, "收穫面積": 13465.95, "每公頃收量": 2887, "收量": 38874464},
    "彰化縣": {"種植面積": 3160.14, "收穫面積": 3160.14, "每公頃收量": 2564, "收量": 8103016},
    "台南市": {"種植面積": 344.32, "收穫面積": 344.32, "每公頃收量": 2235, "收量": 769508},
    "屏東縣": {"種植面積": 327.33, "收穫面積": 327.33, "每公頃收量": 2557, "收量": 836847},
    "花蓮縣": {"種植面積": 245.64, "收穫面積": 245.62, "每公頃收量": 1700, "收量": 417647},
    "台中市": {"種植面積": 225.07, "收穫面積": 225.07, "每公頃收量": 1751, "收量": 394171},
    "嘉義縣": {"種植面積": 219.38, "收穫面積": 219.38, "每公頃收量": 2383, "收量": 522816},
    "高雄市": {"種植面積": 179.27, "收穫面積": 179.27, "每公頃收量": 2272, "收量": 407336},
    "澎湖縣": {"種植面積": 135.18, "收穫面積": 135.18, "每公頃收量": 930, "收量": 125677},
    "宜蘭縣": {"種植面積": 66.64, "收穫面積": 66.64, "每公頃收量": 3847, "收量": 256396},
    "苗栗縣": {"種植面積": 52.64, "收穫面積": 52.64, "每公頃收量": 2325, "收量": 122362},
    "新北市": {"種植面積": 33.69, "收穫面積": 33.69, "每公頃收量": 1546, "收量": 52085},
    "台東縣": {"種植面積": 23.68, "收穫面積": 23.68, "每公頃收量": 1796, "收量": 42538},
    "金門縣": {"種植面積": 17.14, "收穫面積": 17.14, "每公頃收量": 1940, "收量": 33252},
    "桃園市": {"種植面積": 7.72, "收穫面積": 7.72, "每公頃收量": 1840, "收量": 14205},
    "新竹縣": {"種植面積": 7.58, "收穫面積": 7.58, "每公頃收量": 2181, "收量": 16532},
    "南投縣": {"種植面積": 5.39, "收穫面積": 5.39, "每公頃收量": 2082, "收量": 11224},
    "新竹市": {"種植面積": 1.75, "收穫面積": 1.75, "每公頃收量": 1800, "收量": 3150},
    "嘉義市": {"種植面積": 0.97, "收穫面積": 0.97, "每公頃收量": 2000, "收量": 1940},
    "基隆市": {"種植面積": 0.02, "收穫面積": 0.02, "每公頃收量": 1400, "收量": 28}
}

county_name = "雲林縣"
harvest_ratio, planting_ratio = calculate_ratio(data, county_name)
print(f"{county_name}的收量佔總收量的 {harvest_ratio:.2f}%")
print(f"{county_name}的種植面積佔總種植面積的 {planting_ratio:.2f}%")

執行結果:
雲林縣的收量佔總收量的 76.22%
雲林縣的種植面積佔總種植面積的 72.71%