見出し画像

11.pythonとxml,json

◼︎xml

ElementTree XML APIを利用して、xmlを操作します。

ElementTree XML API

◼︎◼︎python(xmlへの書込)

import xml.etree.ElementTree as ET

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

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

employ: ET.Element = ET.SubElement(employee, 'employ')
employId: ET.Element = ET.SubElement(employ, 'id')
employId.text = '1111'
employId: ET.Element = ET.SubElement(employ, 'name')
employId.text = 'Mike'

employ: ET.Element = ET.SubElement(employee, 'employ')
employId: ET.Element = ET.SubElement(employ, 'id')
employId.text = '222'
employId: ET.Element = ET.SubElement(employ, 'name')
employId.text = 'Nancy'

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

◼︎◼︎test.xml

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

◼︎◼︎python(xmlの読込)

import xml.etree.ElementTree as ET

tree: ET.ElementTree = ET.ElementTree(file='text.xml')
root = tree.getroot()

'''
id 1111
name Mike
id 222
name Nancy
'''
for employee in root:
    for employ in employee:
        for person in employ:
            print(person.tag, person.text)

◼︎json

jsonモジュールを利用することで、jsonを扱える。
JSON エンコーダおよびデコーダ

◼︎◼︎python(書込, 読込)

import json

jsonDict: dict = {
    'employee':
        [
            {'id': 111, 'name': 'Mike'},
            {'id': 222, 'name': 'Nancy'}
        ]
}

# jsonFile -with利用-
with open('test.json', 'w') as jsonFile:
    json.dump(jsonDict, jsonFile)

'''
dict型で操作できる
{'employee': [{'id': 111, 'name': 'Mike'}, {'id': 222, 'name': 'Nancy'}]}
{'employee': [{'id': 111, 'name': 'Mike'}, {'id': 222, 'name': 'Nancy'}]}
'''
with open('test.json', 'r') as jsonFile:
    print(json.load(jsonFile))

◼︎◼︎json

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

この記事が気に入ったらサポートをしてみませんか?