最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python解碼函數(shù) python怎么解碼編碼

Python 中 base64 編碼與解碼

base64 是經(jīng)常使用的一種加密方式,在 Python 中有專門的庫支持。

創(chuàng)新互聯(lián)建站專注于塔什庫爾干塔吉克企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。塔什庫爾干塔吉克網(wǎng)站建設(shè)公司,為塔什庫爾干塔吉克等地區(qū)提供建站服務(wù)。全流程按需設(shè)計網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

本文主要介紹在 Python2 和 Python3 中的使用區(qū)別:

在 Python2 環(huán)境:

在 Python3 環(huán)境:

Python3 中有一些區(qū)別,因為 Python3 中字符都是 unicode 編碼,而 b64encode 函數(shù)的參數(shù)為 byte 類型,所以必須先轉(zhuǎn)碼。

以上就是本文的全部內(nèi)容,如果覺得有用的話歡迎 點贊 和 轉(zhuǎn)發(fā) ,多謝。

推薦閱讀:

【Python】淺談python中的json

一 前言 ?

最近一直在做開發(fā)相關(guān)的工作--基于Django的web 平臺,其中需要從model層傳輸數(shù)據(jù)到view 層做數(shù)據(jù)展示或者做業(yè)務(wù)邏輯處理。我們采用通用的Json格式--Json(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和程序解析。

二 認識Json

2.1 Json 結(jié)構(gòu)

常見的Json格式為 “名稱/值”對的集合,其中 值可以是對象,列表,字典,字符串等等。比如

backup_data?=?{"back_to_host":?"dbbk0",

"ip_address":?"10.10.20.3",

"host_name":?"rac4",

"port":?3306}

2.2 使用Json

Python的Json模塊序列化與反序列化的過程分別是 編碼和解碼。這兩個過程涉及到兩組不同的函數(shù)

編碼 把一個Python對象編碼轉(zhuǎn)換成Json字符串,json.dumps(data)/json.dump(data,file_handler)

解碼 把Json格式字符串解碼轉(zhuǎn)換成Python對象,json.loads(data)/json.load(file_handler)

在python中要使用Json模塊做相關(guān)操作,必須先導(dǎo)入:

import Json

2.3 主要函數(shù)

編碼函數(shù)主要有 json.dumps(data)/json.dump(data,file_handler)

json.dumps()的參數(shù)是將python對象轉(zhuǎn)換為字符串,如使用json.dumps序列化的對象json_dumps=json.dumps({'a':1, 'b':2}) ,json_dumps='{"b": 2, "a": 1}'

json.dump 是將內(nèi)置類型序列化為json對象后寫入文件。

解碼函數(shù)主要由json.loads(data)/json.load(file_handler) ?

json.loads的參數(shù)是內(nèi)存對象,把Json格式字符串解碼轉(zhuǎn)換成Python對象,json_loads=json.loads(d_json) ?#{ b": 2, "a": 1},使用load重新反序列化為dict

json.load()的參數(shù)針對文件句柄,比如本地有一個文件/tmp/test.json ?json_load=json.load(open('/tmp/test.json'))

具體案例參考如下:

In?[3]:?data={"back_to_host":?"rac1",

...:?"ip_address":?"10.215.20.3",

...:?"host_name":?"rac3",

...:?"port":?3306}

In?[7]:?json_str=json.dumps(data)

In?[8]:?print json_str

{"ip_address":?"10.215.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}

In?[9]:?json_loads=json.load(json_str)

---------------------------------------------------------------------------

AttributeError Traceback?(most recent?call?last)

ipython-input-9-180506f16431?in?module()

----?1 json_loads=json.load(json_str)

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc?in?load(fp,?encoding,?cls,?object_hook,?parse_float,?parse_int,?parse_constant,?object_pairs_hook,?**kw)

284

285?""

注意 從上面的報錯信息來看 json.loads 傳參是字符串類型,并不是文件句柄,沒有 read()屬性。

In?[10]:?json_loads=json.loads(json_str)

In?[11]:?print json_loads

{u'back_to_host':?u'rac1',?u'ip_address':?u'10.215.20.3',?u'host_name':?u'rac3',?u'port':?3306}

In?[12]:?type(json_loads)

Out[12]:?dict

In?[13]:?type(json_str)

Out[13]:?str

利用dump 將數(shù)據(jù)寫入 dump.json

In?[17]:?with open('/tmp/dump.json','w')?as f:

...:?json.dump(json_str,f)

...:

yangyiDBA:~?yangyi$ cat /tmp/dump.json

"{\"ip_address\": \"10.10.20.3\", \"back_to_host\": \"rac1\", \"host_name\": \"rac3\", \"port\": 3306}"

yangyiDBA:~?yangyi$

利用json.load 將dump.sjon的數(shù)據(jù)讀出來并賦值給 data?

In?[18]:?with open('/tmp/dump.json','r')?as f:

...:?data=json.load(f)

...:

In?[19]:?print data

{"ip_address":?"10.10.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}

三 小結(jié)

本文算是一篇學(xué)習(xí)筆記,主要對比了json.loads/json.load ?, json.dumps/ json.dump 的使用差異 ,方便以后更好的使用json 。

以上為本次分享內(nèi)容,感謝觀看。

python基礎(chǔ):內(nèi)置函數(shù)、方法、轉(zhuǎn)義字符大全

在寫python程序時,常能用到一些函數(shù)和方法,總結(jié)一下,保存起來,方便查詢。

一、內(nèi)置函數(shù)

# abs()獲取數(shù)字絕對值

# chr(i)數(shù)字轉(zhuǎn)換為字符類型

# divmod() 獲取兩個數(shù)值的商和余數(shù)

# enumerate() 將可遍歷序列組合為索引序列

# float()轉(zhuǎn)換為浮點數(shù)

# format() 格式化字符串

# int()轉(zhuǎn)換為整數(shù)?

# input() 接受用戶輸入內(nèi)容

# len() 計算元素個數(shù)

# max() 返回最大值

# min() 返回最小值

# math.ceil() 返回指定數(shù)值的上舍整數(shù)

# open()打開文件并返回文件對象

# pow() 冪運算

# print()打印輸出?

# range() 生成器

# reversed()反轉(zhuǎn)所有元素

# round()四舍五入求值

# sorted()對可迭代對象進行排序?

# str() 轉(zhuǎn)換為字符串

# sum() 求和

# set() 創(chuàng)建集合

# tuple() 將序列轉(zhuǎn)換為元組

# zip()將可迭代對象打包成元組

二、方法

# append() 添加列表元素

# capitalize()首字母轉(zhuǎn)換為大寫?

# count()字符出現(xiàn)次數(shù)

# close() 關(guān)閉文件

# decode() 解碼字符串

# dict.keys() 獲取字典所有的鍵

# find()字符串首次出現(xiàn)的索引

# f.read() 讀取文件內(nèi)容

# dict.update()更新字典

# dict.items() 獲取字典鍵/值對

# dict.get() 返回指定鍵的值

# encode() 編碼字符串

# list.sort() 排序列表元素

# index() 元素首次出現(xiàn)的索引

# isdigit() 判斷字符串是否只由數(shù)字組成

# isupper() 是否所有字母都為大寫

# isnum() 判斷字符串是否由字母和數(shù)字組成

# islower() 是否所有字母都為小寫

# isdecimal() 檢查字符串是否只包含十進制字符

# isalpha() 檢測字符串是否為純字母

# random.shuffle()隨機排序

# random.sample()返回?zé)o重復(fù)隨機數(shù)列表

# random.choice() 返回一個隨機元素

# random.randint() 生成指定范圍的隨機整數(shù)

# random.randrange() 生成指定范圍的指定遞增基數(shù)隨機整數(shù)

# pop() 刪除列表中的元素

# remove()刪除列表中的指定元素

# strip()去除空格

# lstrip()去除左側(cè)空格

# rstrip() 去除右側(cè)空格

# readline() 讀取單行內(nèi)容

# root.after() Tkinter中等待一段時間后再執(zhí)行命令

# str.isnumeric() 驗證字符串是否為數(shù)字(適用于Unicode)

# split()分割字符串

# ord() 將字符轉(zhuǎn)換為整數(shù)

# replace() 字符串替換

# ljust() 左對齊填充

# rjust() 左對齊填充

# readlines() 讀取所有行內(nèi)容

# datetime.datetime.now() 返回指定時區(qū)的本地日期時間

# datetime.datetime.today() 獲取當前本地日期的date對象

# datetime.utcnow() 返回當前UTC時間的datetime對象

# time.strptime()把時間字符串解析為元組

# time.time()返回當前時間的時間戳

# time.sleep()暫停指定秒數(shù)

# time.strftime() 返回指定格式的日期字符串

# time.mktime() 接收時間元組并返回時間戳

# os.getcwd() 獲取當前工作目錄

# os.listdir() 獲取指定路徑下的目錄和文件列表

# os.makedirs() 遞歸創(chuàng)建目錄

# os.rename() 重命名目錄或文件

# os.path.exists() 判斷路徑是否存在

# upper() 全部轉(zhuǎn)換為大寫字母

# lower()? 全部轉(zhuǎn)換為小寫字母

# sys.stdout.write() 標準輸出打印

# sys.stdout.flush()刷新輸出?

# shutil.copy() 復(fù)制單個文件到另一文件或目錄

# write() 寫入文件內(nèi)容

# winsound.Beep() 打開電腦揚聲器

# zfill() 在字符串前面填充0

三、循環(huán)語句

# break終止當前循環(huán)

# continue 終止本循環(huán)進入下一次循環(huán)

# with open() as file 以with語句打開文件(數(shù)據(jù)保存)

四、轉(zhuǎn)義字符

\ 行尾續(xù)行符

\' 單引號?

\'' 雙引號

\a 響鈴

\e 轉(zhuǎn)義

\n 換行

\t 橫向制表符

\f 換頁

\xyy 十六進制yy代表的字符

\\反斜杠符號

\b 退格

\000 空

\v 縱向制表符

\r 回車

\0yy 八進制yy代表的字符

\other 其他的字符以普通格式輸出

Python 讀寫文件的編碼與解碼問題

演示文件為docx文檔,內(nèi)容如下:

源碼

運行源碼查看報錯信息

UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 15: illegal multibyte sequence

上述錯誤是一種很常見的解碼錯誤,下面介紹該錯誤的解決方法

把utf-8,gbk等各種編碼方式都試了一遍,還是沒有解決問題然后仔細看報錯信息,根據(jù)UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfb in position 14: invalid start byte,猜測文件中某個字節(jié)不能解碼,打開文件一看,并沒有看出什么問題來

open() 函數(shù)的第三個參數(shù)不是用來接收編碼方式的,而是傳入一個buffering的值,此處傳入了'gbk'字符串,所以系統(tǒng)提示傳一個整型

通過調(diào)用office的API進行操作,因為在office上能完成的操作,都能通過win32完成,所以我們選擇使用win32

(Python3.5 需要安裝 win32compat,里面含了 win32 的很多包)

python基礎(chǔ)——編碼、bytes與str轉(zhuǎn)換及格式化

對于單個字符的編碼,Python提供了ord()函數(shù)獲取字符的整數(shù)表示,chr()函數(shù)把編碼轉(zhuǎn)換為對應(yīng)的字符:

最常用的編碼是UTF-8,如果沒有特殊業(yè)務(wù)要求,請牢記僅使用UTF-8編碼。

在爬蟲中會經(jīng)常遇見,需要用encode和decode來進行互相轉(zhuǎn)碼

str轉(zhuǎn)bytes

注意,含有中文字符的str不能用acsii格式轉(zhuǎn)碼

bytes轉(zhuǎn)str

** 程序中經(jīng)常會遇到個別字符轉(zhuǎn)碼不成功而報錯,因此在decode方法中需要這個參數(shù)errors='ignore'忽略錯誤的字節(jié)

注意格式化的數(shù)據(jù)格式


網(wǎng)站題目:python解碼函數(shù) python怎么解碼編碼
鏈接URL:http://fisionsoft.com.cn/article/dosdhcs.html