实现一个json串转化为xml文件,然后把xml文件的内容转化为一个python 对象。

import json

import xml.dom.minidom

import codecs

def json_to_xml():

    data={'ip':'127.0.0.1','name':'lilip','pwd':'123'}

    data_json=json.dumps(data)

    data_python=json.loads(data_json)

    doc=xml.dom.minidom.Document()

    root=doc.createElement('database')

    root.setAttribute('object','database infomation')

    doc.appendChild(root)

    database=doc.createElement('database')

    root.appendChild(database)

    ip=doc.createElement('ip')

    ip.appendChild(doc.createTextNode(data_python['ip']))

    database.appendChild(ip)

    name=doc.createElement('name')

    name.appendChild(doc.createTextNode(data_python['name']))

    database.appendChild(name)

    password=doc.createElement('pwd')

    password.appendChild(doc.createTextNode(data_python['pwd']))

    database.appendChild(password)

    fp=codecs.open('D:\\study\\gloryroad\\习题\\第十一章课后习题\\2.xml','w','utf-8')

    doc.writexml(fp,indent='',addindent='\t', newl='\n',encoding="utf-8")

    fp.close()

def xml_to_python():

    DOMTree=xml.dom.minidom.parse(r"D:\\study\\gloryroad\\习题\\第十一章课后习题\\2.xml")

    collection = DOMTree.documentElement

    d={}

    if collection.hasAttribute("object"):

        info=collection.getElementsByTagName("database")

        for i in info:

            ip=i.getElementsByTagName('ip')[0]

            name=i.getElementsByTagName('name')[0]

            pwd=i.getElementsByTagName('pwd')[0]

        d['ip']=ip.childNodes[0].data

        d['name']=name.childNodes[0].data

        d['pwd']=pwd.childNodes[0].data

        print(d)           

    else:

        print('something wrong!')

if __name__=='__main__':

    json_to_xml()

    xml_to_python()

你可能感兴趣的:(实现一个json串转化为xml文件,然后把xml文件的内容转化为一个python 对象。)