漢方処方

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)):
…

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
それぞれの生薬をリストに追加し、集合の内包をチェックしている。