• XML和JSON的系列操作


    来自lxml于xpath文件存储

    操作XML

    读取XML文件,使用parse函数
    就是
    from lxml import etree
    tree = etree.parse('text.xml')

    转化成字符串形式的XML

    a = str(etree.tostring(tree,encoding='utf-8'))

    分析字符串形成的XML文档

    也就是使用etree.formstring(a)

    操作HTML文档

    HTML与XML相似,都是由若干节点组成的。但XML只有这些节点,而HTML不仅有节点,还有其任何文本。

    获取根节点与某个节点的所有子节点

    root = tree.getroot()
    root.getchildren()

    读取与搜索XML文件

    在一定程度上
    from xml.etree.ElementTree import parse等价于
    from lxm.etree import parse
    都是通过parse函数打开xml文件
    然后再通过XPath语法来搜索节点

    将字典转化为XML字符串

    将字典转化为XML文件需要使用dicttoxml模块中的dicttoxml函数
    bxml = dicttoxml.dicttoxml(d, custom_root = 'persons') # 这里传入的是字节形式,需要之后自己转码
    d是传入的字典对象,custom_root = 'persons因该是在为根节点命名
    用utf-8编码格式解码XML字符串
    xml = bxml.decode('utf-8')
    这里解析得到的xml文件并没有采用parse函数
    而是使用from xml.dom.minidom import parseString模块
    dom = parseString(xml)

    生成带缩进格式的XML字符串

    prettyxml = dom.toprettyxml(indent = ' ')

    将XML转换为字典

    xmltodict模块
    d = xmltodict.parse(xml)

    处理JSON格式的数据

    JSON格式的数据可以保存数组和对象,JSON数组用一对中括号将数据括起来,JSON对象用一个大括号将数据括起来。注意:key和字符串类型的值要用双引号括起来,不呢个使用单引号

    JSON字符串与字典相互转换

    字典转换为JSON采用json模块的dumps函数,该函数需要将字典通过参数传入,然后返回与字典对应的JSON字符串
    json_dict = json.dumps(data)
    将JSON字符串转化为字典可以使用json的loads函数,该函数通过参数传入JSON字符串,然后返回与该JSON字符串对应的字典
    data = json.loads(json_dict)
    还可以使用eval函数将JSON格式的字符串当作普通的Python代码执行
    data = eval(json_dict)
    eval函数会直接返回与JSON格式字符串对应的字典。
    由于eval函数可以执行任何Python代码,如果JSON字符串中包含了有害的Python代码,执行JSON字符串可能会带来风险;所以尽量使用loads,不要使用eval函数

    将JSON字符串转化为类实例

    loads函数不仅可以将json字符串转化为字典,还可以将其转化为类实例
    转换的关键是给loads函数加一个object_hook关键字参数指定一个类或者一个回调函数
    变成一个类实例的话就可以使用点(.)来直接调用json字符串中的属性。

    将类实例转化为JSON字符串

    dumps函数不仅可以将字典转换为一个JSON字符串,还可以将类实例转化为JSON字符串。dumps函数需要通过default关键字指定一个回调函数,在转化的过程中,dumps函数会向这个回调函数传入类实例,而回调函数是将类实例转化为字典,而dumps函数再将字典转化为JSON字符串
    (但这里最好提前了解到属性名称,也就是键,才不容易转化成新的字典样子出错)

    类实例列表与JSON字符串相互转换

    将JSON字符串转换为XML字符

    json字符串》字典》xml
    loads==>dicttoxml

    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    开启sentry权限控制hue
    hive_server2的权限控制
    自带的simple认证
    tableau备份
    tableau分布式添加节点
    升级tableau版本
    tableau日常管理
    mavn Nexus Repository Manager漏洞
    第3章:打造命令行工具
    基于从库+binlog方式恢复数据
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15366666.html
Copyright © 2020-2023  润新知