1
我需要將一個複雜的python對象轉換爲JSON,複雜的我的意思是一個對象包含int變量,字符串變量和2個自定義對象列表。複雜的Python對象到JSON轉換
我的Python對象的構造是:
def __init__(self, skills="",vid=""):
self.Skills = list([])
for skillID in skills.split("-"):
if not skillID == "":
tmpSkill = Skill()
tmpSkillObj = DBCommands.getSkill(skillID)
tmpSkill.ID = tmpSkillObj[0][0] #tmpSkillObj[0][0]
tmpSkill.Name = tmpSkillObj[0][1]
tmpSkill.isMain = True
tmpSkill.CurrentlyTesting = False
tmpSkill.isSub = False
tmpSkill.Level = 0
tmpSkill.Tested = False
tmpSkill.Score = 0
tmpSkill.Confidence = 0
tmpSkill.BestScore = 0
tmpSkill.ParentID = 0
self.Skills.append(tmpSkill)
self.AskedQuestions.append(tmpSkill)
self.Skills = list(self.Skills)
if not skills == "":
self.Skills[0].CurrentlyTesting = True #Start testing the first skill
if not vid == "":
self.VacancyID = int(vid)
self.PlayerID = 0
self.Score = float(0)
self.AskedQuestions = list([])
self.MaxLevel = 0
self.AssessmentIsFinished = False
我需要一個機制來編碼對象,並對其進行解碼。
是否必須是JSON?爲什麼不[pickle](https://docs.python.org/2/library/pickle.html)呢? –
該場景爲: 服務器應將對象轉換爲字符串(JSON),然後加密該字符串並將其作爲令牌發送。 當服務器收到令牌時,它應該能夠做相反的工作,解密令牌,將字符串(JSON)解析爲新的對象。 – Deve
這應該用'pickle.dumps()'工作得很好。你的對象將被序列化並返回一個字符串,你可以使用任何你喜歡的方式進行加密和傳輸。 – Aaron