在不知道键盘的情况下,将OldValue的递归更新为嵌套的JSON中的新值



我是测试python的新手,所以我的问题很简单,但是我找不到一种简单的方法来执行此操作:我在文件中有一个嵌套的JSON,我需要找到值(不是键),并用新值替换。在这里,我不在乎关键道路。我尝试将JSON读为字符串,并使用了String.Replace(XXX,NewValue),但它可以用键值对周围的单个引号代替了双引号。但是我需要带有新值的JSON字符串。这只是一个示例JSON,但可以尽可能嵌套。任何指导将不胜感激。

{   "type": "postData",
"data": {
    "postId":"XXX",
    "postTimestamp": "1521543600",
    "pageType": "/home.php:topnews",
    "viewTime": 1521545993647,
    "gender": 3,
    "likes": "8",
    "comments_shares_viewes": ["1"],
    "posters": [{"type": "XXX",
        "id": "695e45affa1e07529ac917f6d573a"} ],
    "postImg": 1,
    "postDesc": [XXX],
    "origLink": 0,
    "duration": 0,
    "timestamp": 1521545993647},
    "back_time": 1521545993693},
        {"type": "saveLooked",
        "data": {
            "duration": 18,
            "timestamp": 1521545993656,
            "sessionId": XXX,
            "gender": 2},
            "back_time": 1521546011657}

我尝试的代码是:

def Construct_JSONString(JString,klist,vlist):
s =   str(JString)
klen=   len(klist)
for i in range(0,klen):
  OldValue=   klist[i] 
  NewValue=   vlist[i]
  s=     s.replace(OldValue, NewValue)
return s  

您可以尝试 -

 import json
 new_json_with_replaced_values=json.dumps(your_json).replace("XXX", "newvalue")

最新更新