所以我運行一個GET到系統中,並得到此輸出:修改註冊表項,以匹配後
'{
"comment": "A good object",
"number": "1.1",
"extra_stuff": {
"extra_id": {"value": 100},
"extra_name": {"value": "Test"},
}
}'
之前將帖子發到系統B,我需要翻譯(和忽略)某些鍵(但保持價值)。我想從這個GET和翻譯只是嵌套的字典鍵(extra_stuff中的鍵),只有他們中的一個。
翻譯:
mapping_dict = { 'extra_id': 'id' }
dict_to_post = { '#KEY extra_ID': #VALUE FROM extra_ID# :, 'name' : Test, 'other' : True }
我有一個功能轉換從另一個問題在這裏把字典鍵:
def update_dict_keys(obj, mapping_dict):
if isinstance(obj, dict):
return {mapping_dict[k]: update_dict_keys(v, mapping_dict) for k, v in obj.iteritems()}
else:
return obj
但我不確定如何只發送嵌套字典進入該功能,我似乎只是把「主」字典放在那裏。不知道最好的方法是什麼。我還需要處理來自「主」字典以及另一篇文章的信息。
對不起,錯字!正在清理代碼以使示例更簡單。該映射用於更改GET字典的密鑰名稱(帶有「extra_id」鍵的嵌套字典),以便稍後可以匹配POST所需的密鑰名稱。 – Kirke
當我嘗試轉換它時,出現一些錯誤: res_dict = json.loads(res) 文件「/usr/lib64/python2.7/json/__init__.py」,第338行,載入中 return _default_decoder.decode (s) 解碼的文件「/usr/lib64/python2.7/json/decoder.py」,第366行 obj,end = self.raw_decode(s,idx = _w(s,0).end() ) – Kirke
如果這只是你在問題中提到的一個關鍵字,那就足夠做'dict_to_post = {'id':res_dict ['extra_stuff'] ['extra_id'] ['value']}'你不需要那麼你的匹配字典。如果你想匹配更多的鍵,告訴我,我會更新我的答案。對於你的堆棧跟蹤:它不會告訴我你是個例外。 – Igle