电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python將字典轉換為XML的方法

瀏覽:43日期:2022-07-15 14:16:33

問題

你想使用一個Python字典存儲數據,并將它轉換成XML格式。

解決方案

盡管 xml.etree.ElementTree 庫通常用來做解析工作,其實它也可以創建XML文檔。 例如,考慮如下這個函數:

from xml.etree.ElementTree import Elementdef dict_to_xml(tag, d):’’’Turn a simple dict of key/value pairs into XML’’’elem = Element(tag)for key, val in d.items(): child = Element(key) child.text = str(val) elem.append(child)return elem

下面是一個使用例子:

>>> s = { ’name’: ’GOOG’, ’shares’: 100, ’price’:490.1 }>>> e = dict_to_xml(’stock’, s)>>> e<Element ’stock’ at 0x1004b64c8>>>>

轉換結果是一個 Element 實例。對于I/O操作,使用 xml.etree.ElementTree 中的 tostring() 函數很容易就能將它轉換成一個字節字符串。例如:

>>> from xml.etree.ElementTree import tostring>>> tostring(e)b’<stock><price>490.1</price><shares>100</shares><name>GOOG</name></stock>’>>>

如果你想給某個元素添加屬性值,可以使用 set() 方法:

>>> e.set(’_id’,’1234’)>>> tostring(e)b’<stock _id='1234'><price>490.1</price><shares>100</shares><name>GOOG</name></stock>’>>>

如果你還想保持元素的順序,可以考慮構造一個 OrderedDict 來代替一個普通的字典。請參考1.7小節。

討論

當創建XML的時候,你被限制只能構造字符串類型的值。例如:

def dict_to_xml_str(tag, d): ’’’ Turn a simple dict of key/value pairs into XML ’’’ parts = [’<{}>’.format(tag)] for key, val in d.items(): parts.append(’<{0}>{1}</{0}>’.format(key,val)) parts.append(’</{}>’.format(tag)) return ’’.join(parts)

問題是如果你手動的去構造的時候可能會碰到一些麻煩。例如,當字典的值中包含一些特殊字符的時候會怎樣呢?

>>> d = { ’name’ : ’<spam>’ }>>> # String creation>>> dict_to_xml_str(’item’,d)’<item><name><spam></name></item>’>>> # Proper XML creation>>> e = dict_to_xml(’item’,d)>>> tostring(e)b’<item><name>&lt;spam&gt;</name></item>’>>>

注意到程序的后面那個例子中,字符 ‘<’ 和 ‘>’ 被替換成了 &lt; 和 &gt;

下面僅供參考,如果你需要手動去轉換這些字符, 可以使用 xml.sax.saxutils 中的 escape() 和 unescape() 函數。例如:

>>> from xml.sax.saxutils import escape, unescape>>> escape(’<spam>’)’&lt;spam&gt;’>>> unescape(_)’<spam>’>>>

除了能創建正確的輸出外,還有另外一個原因推薦你創建 Element 實例而不是字符串, 那就是使用字符串組合構造一個更大的文檔并不是那么容易。 而 Element 實例可以不用考慮解析XML文本的情況下通過多種方式被處理。 也就是說,你可以在一個高級數據結構上完成你所有的操作,并在最后以字符串的形式將其輸出。

以上就是Python將字典轉換為XML的方法的詳細內容,更多關于Python將字典轉換為XML的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 智能终端_RTU_dcm_北斗星空自动化科技| 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 辊道窑炉,辊道窑炉厂家-山东艾希尔 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 万博士范文网-您身边的范文参考网站Vanbs.com | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | AGV叉车|无人叉车|AGV智能叉车|AGV搬运车-江西丹巴赫机器人股份有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 浙江美尔凯特智能厨卫股份有限公司| 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 房间温控器|LonWorks|海思 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 |