日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換

瀏覽:25日期:2022-07-24 13:17:39

之前都是直接拿sax,或dom等庫(kù)去解析xml文件為Python的數(shù)據(jù)類型再去操作,比較繁瑣,如今在寫(xiě)Django網(wǎng)站ajax操作時(shí)json的解析,發(fā)現(xiàn)這篇帖子對(duì)這幾種數(shù)據(jù)類型的轉(zhuǎn)換操作提供了另一種更簡(jiǎn)潔的方法,xmltodict和 dicttoxml等庫(kù)功不可沒(méi),幾種轉(zhuǎn)換方式也都比較全面,轉(zhuǎn)存一下以備不時(shí)之需,感謝原創(chuàng)整理!

注:xml、字典、json、類四種數(shù)據(jù)的轉(zhuǎn)換,從左到右依次轉(zhuǎn)換,即xml要轉(zhuǎn)換為類時(shí),先將xml轉(zhuǎn)換為字典,再將字典轉(zhuǎn)換為json,最后將json轉(zhuǎn)換為類。

1、解析xml文件:使用iterfind尋找節(jié)點(diǎn),獲取子節(jié)點(diǎn)方法 list(節(jié)點(diǎn)),獲取節(jié)點(diǎn)屬性 get(屬性名),下一級(jí)節(jié)點(diǎn)的值findtext

from xml.etree.ElementTree import parsetry: doc=parse(’b.xml’) for item in doc.iterfind(’class’): classname=item.get(’a_name’) print('classname=',classname) for s in list(item):name=s.findtext(’name’)age = s.findtext(’age’)sex = s.findtext(’sex’)print('name=',name,'age=',age,'sex=',sex) print('-------------------')except Exception as e: print(e)

2、字典轉(zhuǎn)換為xml文件:使用dicttoxml模塊,方法:dicttoxml.dicttoxml(字典數(shù)據(jù),根節(jié)點(diǎn)名稱 custom_root=’’)import dicttoxml

from xml.dom.minidom import parseStringimport osd=[20,’name’, {’name’:’apple’,’num’:10,’price’:23}, {’name’: ’pear’, ’num’: 20, ’price’: 18.7}, {’name’: ’banana’, ’num’: 10.5, ’price’: 23}]bxml=dicttoxml.dicttoxml(d,custom_root=’fruit’)xml=bxml.decode(’utf-8’)print(xml)dom=parseString(xml)pxml=dom.toprettyxml(indent=’ ’)f=open(’fruits.xml’,’w’,encoding=’utf-8’)f.write(pxml)f.close()

3、xml文件轉(zhuǎn)為字典:使用xmltodict模塊 ,方法:xmltodict.parse(xml字符串)

import xmltodictimport pprintf=open(’fruits.xml’)xml=f.read()d=xmltodict.parse(xml)pp=pprint.PrettyPrinter(indent=4)pp.pprint(d)#可以通過(guò)d[’root’][’arg’][’#text’]來(lái)訪問(wèn)節(jié)點(diǎn)中的文本值,d[’root’][’arg’][’@p’]來(lái)訪問(wèn)屬性值f.close()

4、字典轉(zhuǎn)換為json:使用json的dumps方法

import jsondata={’name’:’bill’,’company’:’huawei’,’age’:30}jsonstr=json.dumps(data)print(jsonstr)

5、json轉(zhuǎn)換為字典:使用json模塊的loads函數(shù),傳入json字符串,返回該字符串對(duì)應(yīng)的字典

d=json.loads(jsonstr)print(d)

6、json轉(zhuǎn)換為類實(shí)例,

1)、在指定的類中必須有一個(gè)接受字典的構(gòu)造函數(shù);或指定回調(diào)函數(shù)json2Product;

2)、使用json的loads方法(json字符串,object_hook=類名或者回調(diào)函數(shù)名)

import jsonclass Product: def __init__(self,d): self.__dict__=ddef json2Product(d): return Product(d)f=open(’products.json’,’r’,encoding=’utf-8’)strjson=f.read()products=json.loads(strjson,object_hook=Product)for p in products: print(’name=’,p.name,’price=’,p.price)

7、 類實(shí)例轉(zhuǎn)換為json:1)、指定回調(diào)函數(shù)(product2Dict)2、使用json的dump函數(shù),指定default參數(shù)的回調(diào)函數(shù)import json

def product2Dict(product): return { ’name’: product.name, ’price’: product.price, ’count’: product.count }strJson=json.dumps(products,default=product2Dict)print(strJson)

8、字典轉(zhuǎn)換為類:1)、將字典轉(zhuǎn)換為json 2)、json轉(zhuǎn)換為類

import jsondata=[{'name': 'iPhone9', 'price': 9999, 'count': 3000}, {'name': 'tesila', 'price': 800000, 'count': 122}]# 將字典轉(zhuǎn)換為jsonjsonstr=json.dumps(data)class Product: def __init__(self,d): self.__dict__=ddef json2Product(d): return Product(d)# 將json轉(zhuǎn)換為類ps=json.loads(jsonstr,object_hook=Product)for p in ps: print(’name=’, p.name, ’price=’, p.price)

9、將類轉(zhuǎn)換為字典:1)、類轉(zhuǎn)換為json,使用json的dumps方法 2)、json轉(zhuǎn)為字典,使用json的loads方法

def product2Dict(product): return { ’name’: product.name, ’price’: product.price, ’count’: product.count }# 將類轉(zhuǎn)換為jsonstrJson=json.dumps(ps,default=product2Dict)print(strJson)d=json.loads(strJson)print(d)

10、json轉(zhuǎn)xml 1)、先將xml轉(zhuǎn)換為字典 2)、再使用dicttoxml轉(zhuǎn)換為字典

import jsonimport dicttoxmlf=open(’products.json’,’r’,encoding=’utf-8’)jsonstr=f.read()# 將json轉(zhuǎn)換為字典d=json.loads(jsonstr)print(d)# 將字典轉(zhuǎn)換為xmlbxml=dicttoxml.dicttoxml(d,custom_root=’fruit’)print(bxml)

11、將xml轉(zhuǎn)換為json 1)、先使用xmltodict轉(zhuǎn)換為字典2)、再將字典轉(zhuǎn)換為json

import xmltodictimport jsonf=open(’products.xml’,’r’,encoding=’utf-8’)d=f.read()#先將xml轉(zhuǎn)換為字典data=xmltodict.parse(d)print(data)#再將字典轉(zhuǎn)換為jsonstrjson=json.dumps(data)print(strjson)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本在线不卡视频一二三区| 国内揄拍国内精品久久| 国产字幕视频一区二区| 久久久久久美女精品| 亚洲播播91| 91久久在线| 日韩欧美中文字幕在线视频| 国产精品成人自拍| 国产一区二区三区亚洲| 欧美羞羞视频| 一区在线观看| 日本色综合中文字幕| 麻豆精品新av中文字幕| 日韩在线第七页| 午夜在线精品偷拍| 国产图片一区| 日韩三区免费| 亚洲综合中文| 精品国产中文字幕第一页| 日韩中文影院| 视频一区中文字幕| 国产精品一区亚洲| 激情久久中文字幕| 久久国产视频网| 免费在线小视频| 色婷婷成人网| 国产白浆在线免费观看| 国产精品日本欧美一区二区三区| 国产精品亚洲欧美一级在线| 卡一卡二国产精品| 水蜜桃久久夜色精品一区的特点| 国产精品毛片久久| 啪啪国产精品| 国产一区白浆| 国产日韩视频在线| 欧美一区二区三区高清视频| 久久精品 人人爱| 今天的高清视频免费播放成人| 日韩av午夜在线观看| 99热精品久久| 欧美精品第一区| 六月婷婷一区| 91亚洲国产高清| 亚洲精品影视| 99久久亚洲精品蜜臀| 国产日韩三级| 午夜在线视频一区二区区别| 欧美激情另类| 国产欧美日韩一区二区三区四区| 亚洲福利免费| 精品视频网站| 欧美在线91| 久久福利毛片| 在线日韩欧美| 国产在线不卡一区二区三区| 日本色综合中文字幕| 夜夜嗨网站十八久久| 日韩一区二区中文| 老司机免费视频一区二区三区| 只有精品亚洲| 亚洲午夜一级| 水蜜桃久久夜色精品一区| 日韩欧美中文字幕电影| 欧美理论视频| 成人日韩精品| 国产一区丝袜| 国产精品v日韩精品v欧美精品网站| 亚洲综合另类| 黄色日韩在线| 亚洲午夜视频| 久久影院一区| 亚洲高清不卡| 精精国产xxxx视频在线野外| 精品视频久久| 国内不卡的一区二区三区中文字幕| 国产欧美日韩一区二区三区在线| 日韩av午夜在线观看| 日本在线视频一区二区| 亚洲精品韩国| 亚洲深夜福利在线观看| 亚洲深夜影院| 国产亚洲精品v| 噜噜噜躁狠狠躁狠狠精品视频| 99国内精品| 玖玖玖国产精品| 中文字幕视频精品一区二区三区| 天堂va蜜桃一区二区三区| 亚洲少妇自拍| 国产精品呻吟| 首页欧美精品中文字幕| 免费成人在线视频观看| 中文字幕一区二区三区日韩精品| 中文字幕av一区二区三区人| 蜜桃久久久久久| 亚洲精品在线二区| 91国内精品| 麻豆精品一区二区综合av| 精品国产三区在线| 中文字幕人成乱码在线观看| 午夜精品久久久久久久久久蜜桃| 丝袜美腿诱惑一区二区三区| 久久青草久久| 婷婷久久一区| 亚洲精品激情| 国产精品欧美日韩一区| 久久精品国产99国产| 久久电影tv| 欧美精品一线| 婷婷亚洲精品| 国产精品丝袜在线播放| 国产精品115| 色欧美自拍视频| 蜜桃tv一区二区三区| 欧美专区18| 国产亚洲人成a在线v网站| 国产一区二区三区不卡视频网站 | 999精品色在线播放| 精品中文字幕一区二区三区av| 九一国产精品| 亚洲永久精品唐人导航网址| 国产精品久久久久77777丨| 91欧美日韩| 亚洲经典在线| 国产精品三p一区二区| 中文字幕人成乱码在线观看| 婷婷丁香综合| 日本午夜精品久久久| 97精品一区| 香蕉久久夜色精品国产| 国产欧美一区| 激情自拍一区| 久久精品72免费观看| 三级小说欧洲区亚洲区| 水野朝阳av一区二区三区| 国产日产一区| 亚洲国产综合在线看不卡| 日韩二区三区在线观看| 日韩在线观看| 日本午夜精品久久久久| 久久精品中文| 欧美日韩亚洲国产精品| 色爱av综合网| 日韩精彩视频在线观看| 伊伊综合在线| 日韩精品视频在线看| av亚洲一区二区三区| 日本亚洲视频在线| 欧美三级网址| 日本午夜免费一区二区 | 国产精品大片免费观看| 欧美.日韩.国产.一区.二区 | 国产一区日韩欧美| 欧美日韩视频免费看| 婷婷丁香综合| 日韩a一区二区| 日韩三级久久| 午夜欧美精品| 久久精品日韩欧美| 在线国产日韩| av在线日韩| 国产精品videosex极品| 亚洲涩涩av| 91精品一区二区三区综合在线爱| 国产日产高清欧美一区二区三区| 国产在线不卡| 丰满少妇一区| 国产日韩欧美一区二区三区在线观看| 91久久久精品国产| 日韩在线不卡| 老司机精品视频网| 日韩va亚洲va欧美va久久| 夜夜嗨av一区二区三区网站四季av| 国产66精品| 国产欧美高清视频在线| 在线精品福利| 伊人久久婷婷| 91精品国产乱码久久久久久久| 麻豆精品少妇| 国产亚洲一区| 日韩精品一区二区三区中文在线| 黄色成人精品网站| 久久网站免费观看| 日韩久久视频| 91视频精品| 精品一区电影| 久久av中文| 欧美三级第一页| 日本精品国产| 在线精品亚洲| 亚洲综合专区| 亚洲人成高清| 日韩欧美精品一区二区综合视频| 一本一本久久| 亚洲免费一区二区| 午夜在线视频观看日韩17c| 欧美日韩高清| 99热精品在线观看| 亚洲欧美视频| 中国女人久久久| 在线综合视频|