程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql罕見成績集錦

Mysql罕見成績集錦

編輯:MySQL綜合教程

Mysql罕見成績集錦。本站提示廣大學習愛好者:(Mysql罕見成績集錦)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql罕見成績集錦正文


在對文件內容或字符串停止JSON反序列化(deserialize)時,因為原始內容編碼成績,能夠須要對反序列化後的內容停止編碼處置(如將unicode對象轉換為str)。

在Python中,一種方法是先應用json.load或json.loads反序列化獲得dict對象,然後對這個dict對象停止編碼處置。

但其其實json.load與json.loads中,有可選參數object_hook。經由過程應用此參數,可以對反序列化獲得的dict直接停止處置,並應用處置後新的dict替換原dict前往。

應用辦法為:


d = json.loads(json_str, object_hook=_decode_dict)

附Shadowsocks中應用的_decode_dict與_decode_list:


def _decode_list(data):
    rv = []
    for item in data:
        if isinstance(item, unicode):
            item = item.encode('utf-8')
        elif isinstance(item, list):
            item = _decode_list(item)
        elif isinstance(item, dict):
            item = _decode_dict(item)
        rv.append(item)
    return rv
 
def _decode_dict(data):
    rv = {}
    for key, value in data.iteritems():
        if isinstance(key, unicode):
            key = key.encode('utf-8')
        if isinstance(value, unicode):
            value = value.encode('utf-8')
        elif isinstance(value, list):
            value = _decode_list(value)
        elif isinstance(value, dict):
            value = _decode_dict(value)
        rv[key] = value
    return rv

參考:
1.https://docs.python.org/2/library/json.html
2.https://github.com/clowwindy/shadowsocks/blob/master/shadowsocks/utils.py

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved