所以我运行一个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