1. 程式人生 > >將url編碼資料轉換為簡單字串

將url編碼資料轉換為簡單字串

將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