將url編碼資料轉換為簡單字串
阿新 • • 發佈:2018-12-21
將url編碼資料轉換為簡單字串
python3中
import urllib
data = open('zgd.txt','r').readlines()
query_list = []
for d in data:
d = str(urllib.parse.unquote(d)) #converting url encoded data to simple string
query_list.append(d)
print query_list
python2中
其中在python2中的urllib、urllib2和urlparse中無法找到parse模組,在python2的urlparse庫中找到了unquote
from urlparse import unquote
data = open('zgd.txt','r').readlines()
query_list = []
for d in data:
d = str(unquote(d)) #converting url encoded data to simple string
query_list.append(d)
print query_list
url編碼和解碼問題:
urlencode、quote、unquote三個的使用,沒有urldecode。
(1)urlencode的引數是詞典,而quote處理的是字串
它可以將key-value這樣的鍵值對轉換成我們想要的格式。如果使用的是python2,urlencode在urllib.urlencode。如果使用的是python3,urlencode在urllib.parse.urlencode。
import urllib.parse data={"name":"王尼瑪","age":"/","addr":"abcdef"} print(urllib.parse.urlencode(data)) ###輸出為:addr=abcdef&name=%E7%8E%8B%E5%B0%BC%E7%8E%9B&age=%2F print(urllib.parse.quote("hahaha你好啊!")) 輸出為:hahaha%E4%BD%A0%E5%A5%BD%E5%95%8A%EF%BC%81
(2)urllib存在unquote而沒有urldecode
當urlencode之後的字串傳遞過來之後,接受完畢就要解碼了。urllib提供了unquote()這個函式,可沒有urldecode()!
import urllib.parse
data={"name":"王尼瑪","age":"/","addr":"abcdef"}
print(urllib.parse.urlencode(data))
print(urllib.parse.quote("hahaha你好啊!"))
print(urllib.parse.unquote("hahaha%E4%BD%A0%E5%A5%BD%E5%95%8A%EF%BC%81"))
更為詳細請參考:https://blog.csdn.net/a359680405/article/details/44857359