欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python中rb函數(shù) python rbac

python3 對(duì)象 |字典|json|yaml|字符串 相互轉(zhuǎn)化

在研究 k8s 的yaml 配置文件的時(shí)候,我總擔(dān)心自己一不小心 會(huì)寫錯(cuò),所以我向往 使用將對(duì)象 序列化 yaml 的形式,

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出七星關(guān)區(qū)免費(fèi)做網(wǎng)站回饋大家。

其實(shí) python object 可以 直接 轉(zhuǎn) yaml ,甚至也可以 直接 轉(zhuǎn)成yaml文件!??!

這里 會(huì)經(jīng)常用到幾個(gè) 函數(shù) vars() ast.

我們先嘗試用最笨的方法 實(shí)現(xiàn) object到y(tǒng)aml 的轉(zhuǎn)化

在python對(duì)象 convert to dict 的形式,使用 vars()函數(shù)

然后 dict convert to json 使用 json.dumps(dict)函數(shù)

然后 json converte to yaml 使用 ya= yaml.load(json.dumps(dict)) 然后

再 yaml.safe_dump(ya,default_flow_style=False)

至此我們看到 從 python Object --- dict ---- json --- yaml 的轉(zhuǎn)化

其中 obj dict json yaml 轉(zhuǎn) string ,只要 str()函數(shù)即可,或者 str(vars())結(jié)合

yaml 格式 寫入到文件 ,需要注意的是, open()函數(shù) 的mode 一定要是 'w' ,不能是’wb', b代表是二進(jìn)制寫入

yaml 寫入的是dict str,使用 ‘wb' 會(huì)報(bào)錯(cuò),[yaml TypeError: a bytes-like object is required, not 'str']

【出現(xiàn)該錯(cuò)誤往往是通過open()函數(shù)打開文本文件時(shí),使用了‘rb’屬性,如:fileHandle=open(filename,'rb'),則此時(shí)是通過二進(jìn)制方式打開文件的,所以在后面處理時(shí)如果使用了str()函數(shù),就會(huì)出現(xiàn)該錯(cuò)誤,該錯(cuò)誤不會(huì)再python2中出現(xiàn)。

具體解決方法有以下兩種:

第一種,在open()函數(shù)中使用‘r’屬性,即文本方式讀取,而不是‘rb’,以二進(jìn)制文件方式讀取,可以直接解決問題。

第二種,在open()函數(shù)中使用‘rb’,可以在使用之前進(jìn)行轉(zhuǎn)換,有以下實(shí)例,來自: 】

其實(shí) python object 可以 直接 轉(zhuǎn) yaml ,甚至也可以 直接 轉(zhuǎn)成yaml文件!??!

比如我已經(jīng)定義了一個(gè) Dog python class,他有 好幾個(gè)屬性 并已經(jīng)賦值初始化了

另外生成 yaml 對(duì)象

生成yaml文件

結(jié)果是

反過來 yaml ---- json --- 持久化 json 文件 indent=1屬性是為了讓 json 不以單行展示,而是展開

注意的是 python 的 dict 和set 很相似 ,都是 { }, set 里是list, dict 是鍵值對(duì)

【# set object is not JSON serializable [duplicate]

打開 demo.json

yaml --- dict

yaml --- python object

json -- dict

json.loads()

dict-- json

json.jumps()

str --- dict

newdict=dict(str)

json -- python object

一個(gè)python object無法直接與json轉(zhuǎn)化,只能先將對(duì)象轉(zhuǎn)化成dictionary,再轉(zhuǎn)化成json;對(duì)json,也只能先轉(zhuǎn)換成dictionary,再轉(zhuǎn)化成object,通過實(shí)踐,源碼如下:

yaml -- python object

對(duì)yaml,也只能先轉(zhuǎn)換成json ---dictionary,再轉(zhuǎn)化成object,通過實(shí)踐,源碼如下:

dict -- -python object

python對(duì)象 默認(rèn)都有一個(gè) 私有的屬性 dict 取值 就是 object的 字典形式, 賦值就就可以給對(duì)象屬性對(duì)應(yīng)賦值

例如json 轉(zhuǎn) 對(duì)象

對(duì)象 轉(zhuǎn) json

Python之dict(或?qū)ο?與json之間的互相轉(zhuǎn)化

在Python語(yǔ)言中,json數(shù)據(jù)與dict字典以及對(duì)象之間的轉(zhuǎn)化,是必不可少的操作。

dict字典轉(zhuǎn)json數(shù)據(jù)

對(duì)象轉(zhuǎn)json數(shù)據(jù)

json數(shù)據(jù)轉(zhuǎn)成dict字典

json數(shù)據(jù)轉(zhuǎn)成對(duì)象

json的load()與dump()方法的使用

dump()方法的使用

python讀取txt時(shí)被修改

有少量數(shù)據(jù)存在txt文件中,如何進(jìn)行讀取、寫入和修改呢,今天小編就分享下:

python常用的讀取文件函數(shù)有三種read()、readline()、readlines()

1、read() : 一次性讀取所有文本

with open("1.txt", "r", encoding='utf-8') as f: #打開文本

data = f.read() #讀取文本

print(data)

2、readline() : 讀取行的內(nèi)容

with open('1.txt', 'r', encoding='utf-8') as f:

data = f.readline()

print(data)

3、readlines():讀取全部?jī)?nèi)容,以數(shù)列的格式返回結(jié)果,可以配合for循環(huán)使用。

with open('1.txt', 'r', encoding='utf-8') as f:

data = f.readlines()

print(data)

image.png

with open('1.txt', 'r', encoding='utf-8') as f:

for i in f.readlines():

i = ann.strip('\n') #去除文本中的換行符

print(i)

4、with open()寫法與open()的區(qū)別

1666058828369926.png

image.png

open()完成后必須調(diào)用close()方法關(guān)閉文件,因?yàn)槲募?duì)象會(huì)占用操作系統(tǒng)的資源,并且操作系統(tǒng)同一時(shí)間能打開的文件

數(shù)量也是有限的,由于文件讀寫時(shí)都有可能產(chǎn)生IOError,一旦出錯(cuò),后面的f.close()就不會(huì)調(diào)用。with open()則可以避免這樣的情況。

5、python文件讀寫模式

r : 讀取文件,若文件不存在則會(huì)報(bào)錯(cuò)

w: 寫入文件,若文件不存在則會(huì)先創(chuàng)建再寫入,會(huì)覆蓋原文件

a : 寫入文件,若文件不存在則會(huì)先創(chuàng)建再寫入,但不會(huì)覆蓋原文件,而是追加在文件末尾

r+ : 可讀、可寫,文件不存在也會(huì)報(bào)錯(cuò),寫操作時(shí)會(huì)覆蓋

w+ : 可讀,可寫,文件不存在先創(chuàng)建,會(huì)覆蓋

a+ : 可讀、可寫,文件不存在先創(chuàng)建,不會(huì)覆蓋,追加在末尾

rb:以二進(jìn)制方式打開,只能讀取文件。如果文件不存在,會(huì)發(fā)生異常

wb:以二進(jìn)制方式打開,只能寫入文件。如果文件不存在,創(chuàng)建該文件; 如果文件存在,會(huì)清空,在打開(覆蓋)

rt:以文本讀方式打開,只能讀文件。不存在報(bào)錯(cuò)

wt:以文本寫方式打開,只能寫文件。 不存在創(chuàng)建;存在覆蓋

rb+:以二進(jìn)制方式打開,可讀、寫文件。如果文件不存在,會(huì)發(fā)生異常

wb+:以二進(jìn)制方式打開,可讀、寫文件。如果文件不存在,創(chuàng)建該文件;如果文件存在,會(huì)清空,在打開(覆蓋)

pythonword讀取為二進(jìn)制

Python 怎么判斷一個(gè)文件是否是二進(jìn)制文件呢

比如 我在網(wǎng)上抓一組文件,這組文件有圖片,有普通文本,有壓縮包,有 PDF 各種類型的文件

如果是圖片 或者 pdf 保存的話需要使用二進(jìn)制方式保存:

open(fileName, "wb").write(content)

文本需要使用文本方式保存

open(fileName, "w").write(content)

有沒有什么 好的辦法去辨別這個(gè)文件是否是二進(jìn)制文件呢

標(biāo)題名稱:python中rb函數(shù) python rbac
當(dāng)前URL:http://chinadenli.net/article24/dogidce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站小程序開發(fā)、服務(wù)器托管、網(wǎng)站建設(shè)、App設(shè)計(jì)、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)