| サンプル集 |
|
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■WordPress ■PowerShell ■Python ■Flutter ■Rust ■other |
| Linuxコマンド |
| 用語集 |
| debian メモ |
| apache2 メモ |
| MySQL メモ |
| Oracle メモ |
| PostgreSQL |
| HOME |
XMLとJSONの変換の例です。
◆環境| OS | Windows 10 Home 22H2 64bit OS x64 プロセッサ |
|---|---|
| Python | 3.13.1 |
| VS Code | 1.102.0 |
XMLとJSONの文字列とdictの相互変換をしてみます。
| 元 | 先 | メソッド |
|---|---|---|
| XML文字列 | dict | xmltodict.parse() |
| dict | JSON文字列 | json.dumps() |
| JSON文字列 | dict | json.loads() |
| dict | Element ElementTree | json2xml.Json2xml().to_xml() |
| dict | XML文字列 | ET.tostring() |
| xmltojson.py | ||
|
実行してみます。
>py xmltojson.py
(1) json.dumps
<class 'str'>
{
"person": {
"name": "XML JSON",
"phone": "012-345-6789",
"email": "xml@json.com"
}
}
(2) json.loads
<class 'dict'>
{'person': {'name': 'XML JSON', 'phone': '012-345-6789', 'email': 'xm
l@json.com'}}
(3) json2xml.json2xml(json_string)
<class 'str'>
<?xml version="1.0" encoding="UTF-8"?>
<all>
<item type="str">{
"person": {
"name": "XML JSON",
"phone": "012-345-6789",
"email": "xml@json.com"
}
}</item>
</all>
(4) json2xml.json2xml(json_data)
<class 'str'>
<?xml version="1.0" encoding="UTF-8"?>
<all>
<person type="dict">
<name type="str">XML JSON</name>
<phone type="str">012-345-6789</phone>
<email type="str">xml@json.com</email>
</person>
</all>
(5) dict_to_xml
<class 'xml.etree.ElementTree.Element'>
<class 'xml.etree.ElementTree.ElementTree'>
(5)-1 tree.write
<?xml version="1.0" ?>
<root>
<person>
<name>XML JSON</name>
<phone>012-345-6789</phone>
<email>xml@json.com</email>
</person>
</root>
(5)-2 tree.write(io)
<?xml version="1.0" ?>
<root>
<person>
<name>XML JSON</name>
<phone>012-345-6789</phone>
<email>xml@json.com</email>
</person>
</root>
(5)-3 tree.tostring
<class 'str'>
<root><person><name>XML JSON</name><phone>012-345-6789</phone><email>
xml@json.com</email></person></root>
>
(1) json.dumps
<class 'str'>
{
"person": {
"name": "XML JSON",
"phone": "012-345-6789",
"email": "xml@json.com"
}
}
(2) json.loads
<class 'dict'>
{'person': {'name': 'XML JSON', 'phone': '012-345-6789', 'email': 'xm
l@json.com'}}(3) json2xml.json2xml(json_string)
<class 'str'>
<?xml version="1.0" encoding="UTF-8"?>
<all>
<item type="str">{
"person": {
"name": "XML JSON",
"phone": "012-345-6789",
"email": "xml@json.com"
}
}</item>
</all>
(4) json2xml.json2xml(json_data)
<class 'str'>
<?xml version="1.0" encoding="UTF-8"?>
<all>
<person type="dict">
<name type="str">XML JSON</name>
<phone type="str">012-345-6789</phone>
<email type="str">xml@json.com</email>
</person>
</all>
(5) dict_to_xml
<class 'xml.etree.ElementTree.Element'>
<class 'xml.etree.ElementTree.ElementTree'>
(5)-1 tree.write
<?xml version="1.0" ?>
<root>
<person>
<name>XML JSON</name>
<phone>012-345-6789</phone>
<email>xml@json.com</email>
</person>
</root>
(5)-2 tree.write(io)
<?xml version="1.0" ?>
<root>
<person>
<name>XML JSON</name>
<phone>012-345-6789</phone>
<email>xml@json.com</email>
</person>
</root>
(5)-3 tree.tostring
<class 'str'>
<root><person><name>XML JSON</name><phone>012-345-6789</phone><email>
xml@json.com</email></person></root>>
期待通りに動作しました。
Copyright (C) 2025 ymlib.com
