国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SAE Python urllib2因請求頭字典鍵名為Unicode類型引發的異常問題

Freelander / 895人閱讀

摘要:上面這段代碼,我在本地機器服務器其它的應用引擎上測試都是正常的,版本是和。因此,有很大的可能是環境的問題。這個問題已經在工單系統提交了,期待會有好結果吧在某些應用場景下,使用了某些第三方的庫比如,有可能的鍵名是類型的,那就必須進行轉換。

SAE Python urllib2引發異常問題的關鍵點:HTTP(S)請求包含headers,且headers的鍵名為unicode

下面是引發異常的代碼:

pythonimport urllib2
headers = {u"Authorization": u"Bearer 83F40E96FB6882686F4DF1E17105D04E"}
req = urllib2.Request("https://github.com", headers=headers)
urllib2.urlopen(req).read()

代碼執行時會得到類似如下的報錯信息(錯誤是在請求發起前引發的):

textHTTPError: HTTP Error 400: Bad request

下面就上面的請求做假設分析:

若請求不包含headers,則請求正常;

若請求包含headers,且headers字典鍵名不為unicode類型,則請求正常;

若請求包含headers,且headers字典鍵名為unicode類型,則請求前必然會引發HTTP Error 400: Bad request錯誤。

上面這段代碼,我在本地機器、VPS服務器、其它的應用引擎上測試都是正常的,Python版本是2.6和2.7。因此,有很大的可能是SAE Pyhton環境的問題。這個問題已經在SAE工單系統提交了,期待會有好結果吧~

在某些應用場景下,使用了某些第三方的庫(比如Flask-OAuthlib),有可能headers的鍵名是unicode類型的,那就必須進行轉換。下面是在stackoverflow上找到的一個轉換函數:

pythondef convert_keys_to_string(dictionary):
    """Recursively converts dictionary keys to strings."""
    if not isinstance(dictionary, dict):
        return dictionary
    return dict((str(k), convert_keys_to_string(v)) 
        for k, v in dictionary.items())

參考資料:

http://stackoverflow.com/questions/1254454/fastest-way-to-convert-a-dicts-keys-values-from-unicode-to-str

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45347.html

相關文章

  • Python-爬蟲工程師-面試總結

    摘要:內存池機制提供了對內存的垃圾收集機制,但是它將不用的內存放到內存池而不是返回給操作系統。為了加速的執行效率,引入了一個內存池機制,用于管理對小塊內存的申請和釋放。 注:答案一般在網上都能夠找到。1.對if __name__ == main的理解陳述2.python是如何進行內存管理的?3.請寫出一段Python代碼實現刪除一個list里面的重復元素4.Python里面如何拷貝一個對象?...

    antz 評論0 收藏0
  • Python標準庫---17、內置異常

    摘要:關聯值通常會作為參數被傳遞給異常類的構造器。所有內置異常的基類。此異常僅用于非限定名稱。由內置函數和的方法所引發,用來表示該迭代器不能產生下一項。當一個或函數返回時,將引發一個新的實例,函數返回的值將被用作異常構造器的形參。 上一篇文章:Python標準庫---16、內置類型:上下文管理器類型、其他、特殊屬性下一篇文章:Python標準庫---18、文本處理服務:string 常見的字...

    mylxsw 評論0 收藏0
  • python三方庫之requests-快速上手

    摘要:基于發送請求發送請求發送請求其他請求接口與請求類型一致,如等。如果請求返回或狀態碼,調用會拋出此異常。請求超過配置的最大重定向數。 基于2.21.0 發送請求 發送GET請求: r = requests.get(https://api.github.com/events) 發送POST請求: r = requests.post(https://httpbin.org/post, dat...

    xioqua 評論0 收藏0
  • Python 從零開始爬蟲(零)——爬蟲思路&requests模塊使用

    摘要:定制篩選器,對內容進行篩選重點。審查元素這是瀏覽器自帶的工具,提供抓包和檢查網頁源碼的功能,供使用者分析網頁。超時設置,如果服務器在指定秒數內沒有應答,拋出異常,用于避免無響應連接,整形或浮點數。返回連接狀態,正常。 前言 python 3.6 !! 本爬蟲系列是面對有Python語法基礎的讀者寫的,如果你沒學過python,emmmm.....也沒關系,你或許能從每篇文章中學到一些...

    YanceyOfficial 評論0 收藏0
  • python-數據類型字典

    摘要:刪除字典元素和字典刪除鍵為的條目刪除中所有的條目刪除整個字典刪除并返回鍵為的條目二字典相關函數工廠方法工廠函數被用來創建字典。與函數方法相似,如果字典中鍵存在,刪除并返回,如果鍵不存在,且沒有給出的值,引發異常。 Python字典是另一種可變容器模型,且可存儲任意類型對象,如字符串、數字、元組等其他容器模型。一、創建字典(一)字典的增刪改查(1)字典的創建key:(不可變類型)數字、字...

    SmallBoyO 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<