繁体   English   中英

如何使用python替换json文件中的值?

[英]how to replace value in a json file using python?

我想做的是:-

with open ('gw.json') as json_file:
    data = json.load(json_file)

    new_gw = {
      'gw_id': f"{react.id}",
      'gw_prize': prize,
      'gw_status': "ongoing"
    }

  data.append(new_gw)

  with open('gw.json', 'w') as j:
    json.dump(data, j, indent=4)

  #some other stuff

  #when completed

  with open ('gw.json', 'r') as jsonFile:
    data = json.load(jsonFile)
    for x in data:
      if x['gw_id'] == f"{msgid}":
        x['gw_status'] = x['gw_status'].replace('ongoing', x['completed']) #change the value of 'gw_status' when completed
    with open ('gw.json', 'w') as jsonFile:
      json.dump(data, jsonFile)

我想做的是

[
    {
        "gw_id": "id",
        "gw_prize": "prize",
        "gw_status": "ongoing"
    }
{
        "gw_id": "904905768149590086",
        "gw_prize": "tdd",
        "gw_status": "ongoing" <== this one to be changed to "completed"
    }
]

但是我写的代码不起作用请帮忙!! 我需要完成这个直到明天

看起来您的帖子主要是代码; 请添加更多详细信息。 看起来您的帖子主要是代码; 请添加更多详细信息。 看起来您的帖子主要是代码; 请添加更多详细信息。

代替

x['gw_status'] = x['gw_status'].replace('ongoing', x['completed'])

x['gw_status'] = 'completed'

更改此代码后,您的代码将如下所示

with open ('gw.json') as json_file:
    data = json.load(json_file)

    new_gw = {
      'gw_id': f"{react_id}",
      'gw_prize': prize,
      'gw_status': "ongoing"
    }

    data.append(new_gw)

    with open('gw.json', 'w') as j:
      json.dump(data, j, indent=4)

    #some other stuff

    #when completed

    with open ('gw.json', 'r') as jsonFile:
      data = json.load(jsonFile)
      for x in data:
        if x['gw_id'] == f"{msgid}":
          x['gw_status'] = 'completed' #change the value of 'gw_status' when completed
      with open ('gw.json', 'w') as jsonFile:
        json.dump(data, jsonFile)

运行代码前的gw.json文件

[
  { "gw_id": "id", 
    "gw_prize": "prize", 
    "gw_status": "ongoing" 
    }
]

运行代码后的gw.json文件

[
  { "gw_id": "id", 
    "gw_prize": "prize", 
    "gw_status": "ongoing" 
    },
  {
    "gw_id": "904905768149590086",
    "gw_prize": "tdd",
    "gw_status": "completed"
  }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM