亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么中python中對Json與object進行轉換

發布時間:2021-02-25 16:05:37 來源:億速云 閱讀:378 作者:戴恩恩 欄目:開發技術

這篇文章主要為大家詳細介紹了怎么中python中對Json與object進行轉換,文中示例代碼介紹的非常詳細,具有一定的參考價值,發現的小伙伴們可以參考一下:

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

python提供了json包來進行json處理,json與python中數據類型對應關系如下:

怎么中python中對Json與object進行轉換

一個python object無法直接與json轉化,只能先將對象轉化成dictionary,再轉化成json;對json,也只能先轉換成dictionary,再轉化成object,通過實踐,源碼如下:

import json

class user:
  def __init__(self, name, pwd):
    self.name = name
    self.pwd = pwd

  def __str__(self):
    return 'user(' + self.name + ',' + self.pwd + ')'

#重寫JSONEncoder的default方法,object轉換成dict
class userEncoder(json.JSONEncoder):
  def default(self, o):
    if isinstance(o, user):
      return {
        'name': o.name,
        'pwd': o.pwd
      }
    return json.JSONEncoder.default(o)

#重寫JSONDecoder的decode方法,dict轉換成object
class userDecode(json.JSONDecoder):
  def decode(self, s):
    dic = super().decode(s)
    return user(dic['name'], dic['pwd'])

#重寫JSONDecoder的__init__方法,dict轉換成object
class userDecode2(json.JSONDecoder):
  def __init__(self):
    json.JSONDecoder.__init__(self, object_hook=dic2objhook)


# 對象轉換成dict
def obj2dict(obj):

  if (isinstance(obj, user)):
    return {
      'name': obj.name,
      'pwd': obj.pwd
    }
  else:
    return obj

# dict轉換為對象
def dic2objhook(dic):

  if isinstance(dic, dict):
    return user(dic['name'], dic['pwd'])
  return dic

# 第一種方式,直接把對象先轉換成dict
u = user('smith', '123456')
uobj = json.dumps(obj2dict(u))
print('uobj: ', uobj)


#第二種方式,利用json.dumps的關鍵字參數default
u = user('smith', '123456')
uobj2 = json.dumps(u, default=obj2dict)
print('uobj2: ', uobj)

#第三種方式,定義json的encode和decode子類,使用json.dumps的cls默認參數
user_encode_str = json.dumps(u, cls=userEncoder)
print('user2json: ', user_encode_str)

#json轉換為object
u2 = json.loads(user_encode_str, cls=userDecode)
print('json2user: ', u2)

#另一種json轉換成object的方式
u3 = json.loads(user_encode_str, cls=userDecode2)
print('json2user2: ', u3)

輸出結果如下:

C:\python\python.exe C:/Users/Administrator/PycharmProjects/pytest/com/guo/myjson.py
uobj: {"name": "smith", "pwd": "123456"}
uobj2: {"name": "smith", "pwd": "123456"}
user2json: {"name": "smith", "pwd": "123456"}
json2user: user(smith,123456)
json2user2: user(smith,123456)

Process finished with exit code 0

以上就是億速云小編為大家收集整理的怎么中python中對Json與object進行轉換,如何覺得億速云網站的內容還不錯,歡迎將億速云網站推薦給身邊好友。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东阿县| 赤城县| 枣强县| 龙陵县| 天津市| 定兴县| 南丰县| 龙泉市| 金华市| 灵丘县| 湖北省| 益阳市| 彰化市| 浪卡子县| 崇明县| 墨脱县| 汝城县| 和静县| 九龙县| 南木林县| 昌乐县| 山阴县| 商丘市| 禹州市| 商水县| 郯城县| 云和县| 淮南市| 固阳县| 平陆县| 西盟| 民丰县| 崇礼县| 永和县| 武山县| 阳朔县| 韶山市| 循化| 巴林左旗| 仲巴县| 渑池县|