フォルダー構造
$ tree
.
├── data_inspect.json
├── index.html -> inspect_organization.html
├── inspect_organization.html
└── inspect_organization.js
inspect_organization.html
<!DOCTYPE html>
<html lang="ja">
<head>
<title>PCR検査の実施状況</title>
<meta charset="UTF-8">
<script src="/js/jquery-3.4.1.min.js"></script>
<script src="/js/Chart.min.js"></script>
<script src="inspect_organization.js"></script>
</head>
<body>
<h1>国内における新型コロナウイルスに係るPCR検査の実施状況</h1>
<canvas id="chart" height="200" width="400"></canvas>
<p />
データソース<br />
<blockquote>
<a href="https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000121431_00086.html">厚生労働省の報道発表資料</a><p />
<a href="https://www.mhlw.go.jp/content/10900000/000608163.pdf">
国内における新型コロナウイルスに係るPCR検査の実施状況(2020年3月13日掲載分)</a><p />
</blockquote>
<hr />
<div id="outarea_aa">outarea_aa</div>
<div id="outarea_bb">outarea_bb</div>
<div id="outarea_cc">outarea_cc</div>
<div id="outarea_dd">outarea_dd</div>
<div id="outarea_ee">outarea_ee</div>
<div id="outarea_ff">outarea_ff</div>
<div id="outarea_gg">outarea_gg</div>
<div id="outarea_hh">outarea_hh</div>
<hr />
Mar/14/2020<p />
</body>
</html>
inspect_organization.js
// ----------------------------------------------------------------------
// inspect_organization.js
//
// Mar/14/2020
// ----------------------------------------------------------------------
const file_json = "data_inspect.json"
jQuery.getJSON(file_json,function (data)
{
jQuery("#outarea_aa").text ("*** start ***")
const graph_data = convert01(data)
prog01 (graph_data)
jQuery("#outarea_hh").text ("*** end ***")
})
// ----------------------------------------------------------------------
function convert01(data)
{
var count = 0
var labels = []
var data_aa = []
var data_bb = []
var data_cc = []
var data_dd = []
var data_ee = []
const llx = data.array_date.length - 1
jQuery("#outarea_bb").text ("llx = " + llx)
for (var it = 0; it < llx; it += 1)
{
labels.push(data.array_date[it])
data_aa.push(data.array_aa[it])
data_bb.push(data.array_bb[it])
data_cc.push(data.array_cc[it])
data_dd.push(data.array_dd[it])
data_ee.push(data.array_ee[it])
}
graph_data = {}
graph_data['labels'] = labels
graph_data['datasets'] = []
const unit_aa = { label: "国立感染症研究所",
lineTension: 0, data : data_aa , borderColor: 'green'}
const unit_bb = { label: "検疫所",
lineTension: 0, data : data_bb, borderColor: 'blue' }
const unit_cc = { label: "地方衛生研究所・保健所",
lineTension: 0, data : data_cc ,borderColor: 'cyan'}
const unit_dd = { label: "民間検査会社",
lineTension: 0, data : data_dd, borderColor: 'yellow' }
const unit_ee = { label: "大学",
lineTension: 0, data : data_ee, borderColor: 'magenta' }
graph_data['datasets'].push(unit_aa)
graph_data['datasets'].push(unit_bb)
graph_data['datasets'].push(unit_cc)
graph_data['datasets'].push(unit_dd)
graph_data['datasets'].push(unit_ee)
return graph_data
}
// ----------------------------------------------------------------------
function prog01 (graph_data)
{
var options = {}
const config = {
type: 'line',
data: graph_data,
options: options
}
const context = jQuery("#chart")
const chart = new Chart(context,config)
}
// ----------------------------------------------------------------------
data_inspect.json の作り方
PDF データのダウンロード
wget https://www.mhlw.go.jp/content/10900000/000608163.pdf
PDF を JSON に変換
pdf_inspect.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# pdf_inspect.py
#
# Mar/14/2020
#
import sys
import json
import pdftotext
#
# ------------------------------------------------------------------
sys.path.append('/var/www/data_base/common/python_common')
from file_io import file_write_proc
# ------------------------------------------------------------------
def append_proc(array_in,cols):
# sys.stderr.write("*** check append_proc\n")
icount = 0
value = ""
for col in cols:
if 0 < icount:
if col == "※" or col == "計" :
value = col
elif col.find("(") < 0:
value = int(col.replace(",",""))
else:
value = col
array_in.append(value)
icount += 1
#
# ------------------------------------------------------------------
# [6-2]:
def pdf_to_array_s2_proc(res,line):
cols= line.split ()
if (5 < len (cols)):
if 0 < cols[0].find("("):
sys.stderr.write(cols[0] + "\n")
res['array_date'].append(cols[0])
sys.stderr.write("len = %d\n" % len(res['array_date']))
append_proc(res['array_date'],cols)
elif 0 < cols[0].find("国立感染症"):
append_proc(res['array_aa'],cols)
elif 0 < cols[0].find("検疫所"):
append_proc(res['array_bb'],cols)
elif 0 < cols[0].find("地方衛生研究所"):
append_proc(res['array_cc'],cols)
elif 0 < cols[0].find("民間検査会社"):
append_proc(res['array_dd'],cols)
elif 0 < cols[0].find("大学"):
append_proc(res['array_ee'],cols)
elif 0 < cols[0].find("医療機関"):
append_proc(res['array_ff'],cols)
# ------------------------------------------------------------------
# [6]:
def pdf_to_array_proc (file_pdf):
#
fp_in = open(file_pdf, "rb")
pdf = pdftotext.PDF(fp_in)
fp_in.close()
#
res = {}
for key in ['array_date','array_aa','array_bb','array_cc','array_dd', \
'array_ee','array_ff']:
res[key] = []
#
lines = pdf[0].split("\n")
for str in lines:
line = str.rstrip()
if (5 < len (line)):
pdf_to_array_s2_proc(res,line)
#
return res
# ------------------------------------------------------------------
sys.stderr.write ("*** 開始 ***\n")
file_pdf = sys.argv[1]
res = pdf_to_array_proc (file_pdf)
for key in ['array_date','array_aa','array_bb','array_cc','array_dd', \
'array_ee','array_ff']:
print(res[key])
#
file_out = "data_inspect.json"
out_str = json.dumps(res)
file_write_proc(file_out,out_str)
#
sys.stderr.write ("*** 終了 ***\n")
# ------------------------------------------------------------------
実行コマンド
./pdf_inspect.py 000608163.pdf