Djangoでの練習を兼ねて、以前にPHPとXMLデータを利用した漢方処方の処理を行ってみた。
漢方はその名称や薬効に加えて、構成生薬データがある。
今回はXMLデータではなく、JSONデータに変換して処理した。
RDBは使わない。
ある漢方処方を選択して、その生薬の構成を含む漢方処方、あるいは逆にその構成に含まれる漢方処方を探し出す。
PHPの時には、それなりに苦労したけれど、百人一首の処理のときと同様、Pythonで集合を用いることで、簡単に処理できた。
JSONの例
{
"kID": "001",
"kKana": "カッコントウ",
"kName": "葛根湯",
"RECIPE": [
{
"sID": "013",
"sName": "葛根",
"Ryo": "4"
},
{
"sID": "018",
"sName": "甘草",
"Ryo": "2"
},
{
"sID": "026",
"sName": "桂皮",
"Ryo": "2"
},
{
"sID": "049",
"sName": "芍薬",
"Ryo": "2"
},
{
"sID": "052",
"sName": "生姜",
"Ryo": "2"
},
{
"sID": "066",
"sName": "大棗",
"Ryo": "3"
},
{
"sID": "102",
"sName": "麻黄",
"Ryo": "3"
}
]
},
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Views.py
s=[]
for d in recipe[0]['RECIPE']:
s.append(d['sID'])
for c in recipe_data:
r=[]
if c['kID'] != id:
for d in c['RECIPE']:
r.append(d['sID'])
if(set(r) <= set(s)):
…
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
それぞれの生薬をリストに追加し、集合の内包をチェックしている。