日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决

發布時間:2024/7/23 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python --解析字符串,并返回xml格式字符串 急急急。

str?=?"""Registrations:

=================================================================================================

Call-ID:????????8945da7a7f550c16NWRjZjdmMjhmNWQxYTZlOTJjMDY5YjhiN2RjMDViMWE.

User:???????????1000@192.168.1.111

Contact:????????"1000"?<1000>1000>

Agent:??????????X-Lite?release?1002tx?stamp?29712

Status:?????????Registered(UDP)(unknown)?EXP(2014-07-23?10:19:00)?EXPSECS(2458)

Host:???????????debian

IP:?????????????192.168.1.109

Port:???????????35838

Auth-User:??????1000

Auth-Realm:?????192.168.1.111

MWI-Account:????1000@192.168.1.111

Total?items?returned:?1

================================================================================================="""

這個字符串如何解析成列表,并構造成xml格式字符串。請各位大神注意,這個字符串contact字段中的值有冒號,

------解決方案--------------------

#?-*-?coding:?cp936?-*-

str?=?"""Registrations:

=================================================================================================

Call-ID:????????8945da7a7f550c16NWRjZjdmMjhmNWQxYTZlOTJjMDY5YjhiN2RjMDViMWE.

User:???????????1000@192.168.1.111

Contact:????????"1000"?<1000>1000>

Agent:??????????X-Lite?release?1002tx?stamp?29712

Status:?????????Registered(UDP)(unknown)?EXP(2014-07-23?10:19:00)?EXPSECS(2458)

Host:???????????debian

IP:?????????????192.168.1.109

Port:???????????35838

Auth-User:??????1000

Auth-Realm:?????192.168.1.111

MWI-Account:????1000@192.168.1.111

Total?items?returned:?1

================================================================================================="""

lineList?=?str.split("\n")

dictA?=?{}

listB?=?[]

for?line?in?lineList:

curLine?=?line.strip().split(":",1)

if?len(curLine)?!=2:

continue

key?=?curLine[0].strip()

value?=?curLine[1].strip()

if?value?==?"":

continue

dictA[key]?=?value?#你確定你不要字典?

listB.append((key,value))

print?dictA

print?listB

------解決方案--------------------

import?re

from?lxml?import?etree

s?=?"""Registrations:

=================================================================================================

Call-ID:????????8945da7a7f550c16NWRjZjdmMjhmNWQxYTZlOTJjMDY5YjhiN2RjMDViMWE.

User:???????????1000@192.168.1.111

Contact:????????"1000"?<1000>1000>

Agent:??????????X-Lite?release?1002tx?stamp?29712

Status:?????????Registered(UDP)(unknown)?EXP(2014-07-23?10:19:00)?EXPSECS(2458)

Host:???????????debian

IP:?????????????192.168.1.109

Port:???????????35838

Auth-User:??????1000

Auth-Realm:?????192.168.1.111

MWI-Account:????1000@192.168.1.111

Total?items?returned:?1

================================================================================================="""

root?=?etree.Element('root')

data?=?s.split('\n')

for?l?in?data[:-2]:

m?=?re.match('^([^:]+):\s+(.*)',?l)

if?m:

id,?info?=?m.groups()

e?=?etree.Element(id)

e.text?=?info

root.append(e)

print?etree.tostring(root,?pretty_print=True)

記得先安裝下?lxml,windows?下可以直接到官網下載安裝包;linux?下可以?pip?install?lxml

總結

以上是生活随笔為你收集整理的python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。