Python3字符串截取值


接口返回一個json。json中又包含字符串,字符串又存在編碼,那么我們該怎么去截取出想要的各種值呢 ?

從接口返回的json中獲取字符串的辦法請參考這里:https://www.cnblogs.com/Zhan-W/p/11876366.html

 接下來就記錄一下如何從已經弄出來的字符串中截取想要的結果:

目標:從這個字符串中截取args值,但是args的值包含多個值,同時還存在編碼

eg: https://www.xxxxxxx.com/new/#/register/h5?ProjectType=0&args=eyJ0ZW5hbnROYW1lIjoiV01TXzUyMF8zODk0Iiwic2hhcmVQYXJhbSI6Im4zNGdDLzR1RnpNTkY0RVl5eWhUY3U4SlNmQ3JCbTExZGpQeE9uQld0Z2wyQXFJQmdFSGpsUT09In0%3d

操作步驟如下:

1、先解碼

# __*__coding:utf-8 __*__
import urllib.parse import base64 import json # 字符串S中的參數args是被編碼了的
s = "https://test.xxxxxx.com/new/#/register/h5?ProjectType=0&args=eyJ0ZW5hbnROYW1lIjoiV01TXzUyMF8zODk0Iiwic2hhcmVQYXJhbSI6Im4zNGdDLzR1RnpNTkY0RVl5eWhUY3U4SlNmQ3JCbTExZGpQeE9uQld0Z2wyQXFJQmdFSGpsUT09In0%3d"
# 先對字符串S進行解碼
url_parameter_1 = urllib.parse.unquote(s) print("解碼后的url_parameter_1值為:",url_parameter_1)

解碼后的結果為:

 

2、切片

# 通過使用split()來將解碼后的字符串S從字段“args=”進行切片
url_parameter_2 = url_parameter_1.split("args=") print("切片后的url_parameter_2值為:",url_parameter_2) # 查看切片后的url_parameter_2的類型
print("url_parameter_2值的類型為: ",type(url_parameter_2))   # 是一個list類型

切片后的結果為 :

 

3、取值

# 獲取切片后的值
url_parameter_3 = url_parameter_2[1] print("url_parameter_3的值為:",url_parameter_3)

取值的結果為:

 

到這里已經把這一大串仙想要的東西弄出來了,但是他還是經過base64位編碼了的,進行進行解碼:

4、解碼

url_parameter_4 = base64.b64decode(url_parameter_3)

解碼后的結果為:

 

 此時獲取到的url_parameter_4的值類型為:bytes,其實是不便於我們獲取shareParam這個值的,

5、轉換類型

url_parameter_5 = json.loads(url_parameter_4) print("轉換類型后的url_parameter_5結果為:",url_parameter_5)

轉換后的結果為 :

 

 現在已經是個字典了 ,我們按照獲取字典的值的方法去拿到shareParam的值

6、獲取字典值

url_parameter_6 = url_parameter_5["shareParam"] print(url_parameter_6)

獲取的字典值為 :

 

最終為了省地兒,可以合成這樣一句:

url_orgs = json.loads(base64.b64decode(urllib.parse.unquote(s).split("&args=")[1]))["shareParam"]

 這樣就拿到了我最終想要的這個值,以供其他接口使用

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM