PythonとWEBネットワーク【XMLとJson】

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

今回はPythonのデータ管理に役立つXMLとJsonについての記事です。

XMLとJsonはデータ管理に使われます。

XMLよりも最近はJsonの方が記述が楽なのでJsonが使われている傾向にあります。

XMLやJsonについて良く分からない方はこちらの記事がおすすめです。

Pythonとは人工知能、機械学習、ディープラーニング、データ解析などに特化しており、2020年プログラミング言語人気ランキング1位になっているプログラミング言語です。

Pythonについて詳しく知りたい方はこちらのウェブサイトをどうぞ。

XMLのフォーマット

まずはXMLのフォーマットの紹介です。

後述のJsonの方が簡単でコードが短いのでとりあえず我慢して見てみてください。

<?xml version='1.0' encoding='utf-8'?>
<root>
    <employee>
        <employ>
            <id>111</id>
            <name>Mike</name>
        </employ>
        <employ>
            <id>222</id>
            <name>Kevin</name>
        </employ>
    </employee>
</root>

顧客情報のデータとなっています。

それではこちらのデータをファイル書き込みする方法について紹介していきます。

XMLファイルの書き込み

先に完成版を紹介します。

import xml.etree.ElementTree as ET

root = ET.Element('root')
tree = ET.ElementTree(element=root)

employee = ET.SubElement(root,'employee')

employ = ET.SubElement(employee,'employ')
employ_id = ET.SubElement(employ,'id')
employ_id.text = '111'
employ_id =ET.SubElement(employ,'name')
employ_id.text = 'Mike'

employ = ET.SubElement(employee, 'employ')
employ_id = ET.SubElement(employ,'id')
employ_id.text = '222'
employ_id = ET.SubElement(employ,'name')
employ_id.text = 'Kevin'

tree.write('test.xml', encoding='utf-8',xml_declaration=True)

こちらのコードを実行すれば上の顧客情報のデータをtest.xmlに書き込むことができます。

それでは具体的な説明に移っていきます。

まずこのコードを実行することで最初の<root>を作成することができます。

以下では< >はタグと記述します。

root = ET.Element('root')
tree = ET.ElementTree(element=root)

次にrootタグ直下にemployeeタグを作成します。

employee = ET.SubElement(root,'employee')

同様にemployeeタグ直下にemployタグを作成します。

employ = ET.SubElement(employee,'employ')

そしてidタグとnameタグを作り中身を入れてあげます。

employ_id = ET.SubElement(employ,'id')
employ_id.text = '111'
employ_id =ET.SubElement(employ,'name')
employ_id.text = 'Mike'

以下の文も同様です。

employ_id = ET.SubElement(employ,'id')
employ_id.text = '222'
employ_id = ET.SubElement(employ,'name')
employ_id.text = 'Kevin'

最後に以下の文を実行することでtest.xmlにxmlのフォーマットと同じ文を作成することができます。

tree.write('test.xml', encoding='utf-8',xml_declaration=True)

ちなみにxml_declaration=Trueとすることでこちらのxmlのバージョンを表示することができます。

<?xml version='1.0' encoding='utf-8'?>

それでは最後にXMLの完成版を書いておきます。

import xml.etree.ElementTree as ET

root = ET.Element('root')
tree = ET.ElementTree(element=root)

employee = ET.SubElement(root,'employee')

employ = ET.SubElement(employee,'employ')
employ_id = ET.SubElement(employ,'id')
employ_id.text = '111'
employ_id =ET.SubElement(employ,'name')
employ_id.text = 'Mike'

employ = ET.SubElement(employee, 'employ')
employ_id = ET.SubElement(employ,'id')
employ_id.text = '222'
employ_id = ET.SubElement(employ,'name')
employ_id.text = 'Kevin'

tree.write('test.xml', encoding='utf-8',xml_declaration=True)
<?xml version='1.0' encoding='utf-8'?>
<root>
    <employee>
        <employ>
            <id>111</id>
            <name>Mike</name>
        </employ>
        <employ>
            <id>222</id>
            <name>Kevin</name>
        </employ>
    </employee>
</root>

そしてこのようなtest.xmlが作成されます。

<test.xml>

<?xml version='1.0' encoding='utf-8'?>
<root><employee><employ><id>111</id><name>Mike</name></employ><employ><id>222</id><name>Kevin</name></employ></employee></root>

Jsonのフォーマット

{
    "employee":
        {
            {"id": 111, "name": "Mike"},
            {"id": 222, "name": "Kevin"}
        }
}

こちらがJsonのフォーマットとなっています。

XMLよりも単純で記述しやすいものとなっています。

それではJsonのファイル書きこみをやっていきましょう。

Jsonファイル書き込み

import json

j = {
    "employee":
        [
            {"id": 111, "name": "Mike"},
            {"id": 222, "name": "Kevin"}
        ]
}

with open('test.json', 'w') as f:
    json.dump(j,f)

これでこのようなtest.jsonが作成されます。

<test.json>

{"employee": [{"id": 111, "name": "Mike"}, {"id": 222, "name": "Kevin"}]}

ファイルの書き込み、読み込みが分からない方はこちらの記事も合わせてどうぞ。

Pythonの勉強方法【おまけ】

Pythonの基礎文法を勉強するにはUdemyというオンラインプログラミング学習プラットフォームがおすすめです。

具体的に言うとこちらの講座です。

この講座だけで基礎文法だけでなく実践的な応用スキルまで身につけることができます。

めちゃくちゃわかりやすい講座なので気になる方は是非みてみてください。

私が受けたPythonの講座の中では最も良かったですし、この講座だけで案件を獲得できるようになるレベルまでプログラミングを上達させることができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえばこの講座と言われているほどです。

今回紹介したxmlやjsonもこの講座の中でより詳しく述べられています。

気になる方はこちらのリンクからどうぞ。

Udemy

その他の記事

おわりに

今回はPythonのWebネットワークの内容でxmlやjsonについて紹介しました。

最近はxmlよりjsonが主流になっていますがまだまだxmlを使っていることもあるのでどちらも押さえておくべきかと思います。

こちらの記事も合わせてどうぞ。

コメント

タイトルとURLをコピーしました