用于更改json文件值的Shell或Python脚本

用于更改json文件值的Shell或Python脚本,python,shell,Python,Shell,我有一个Json文件controller.txt,这是我日常工作所需要的 { "user": "dexter", "Issue": "**MUX-4190**", "start_date": "**2018-01-01**", "end_date": "**2018-12-30**", "Demo_nos": [**111**], "service_names": [ "**Demo1.service.test**",

我有一个Json文件controller.txt,这是我日常工作所需要的

{
    "user": "dexter",
    "Issue": "**MUX-4190**",
    "start_date": "**2018-01-01**",
    "end_date": "**2018-12-30**",
    "Demo_nos": [**111**],
    "service_names": [
             "**Demo1.service.test**",
             "**Demo2.service.test**", 
             "**Demo3.service.test**",
             "**Demo4.service.test**",
             "**Demo5.service.tes**t"
        ]
}
所以我总是需要更改json文件中下面突出显示的条目, 是否有任何方法(使用shell/python)可以键入这些值,并相应地填充这些字段,而不是每次手动编辑control.txt json文件

  • 发行
  • 开始日期
  • 结束日期
  • 示范
  • 服务名称

它可以工作,但它不是对现有条目进行更改,而是两次更新相同的数据,我的意思是它创建了第二个块,其中包含我更新的信息和前一个块。如果目标是从头重写,请确保在执行
truncate()
之前先执行
搜索()
到文件的开头,而且,请注意,像这样就地更新文件是很危险的;编写一个新的/临时文件,并在完成后将其重命名为原始文件更安全。这样,在错误的时间崩溃不会使您的文件为空,或者在更新仍在进行时读取该文件的程序不会将其视为已损坏。我希望您明白我的问题吗?我想将这些值作为用户输入,我正在尝试@Ravi提供的以下代码,但存在一些问题..json文件变量保持不变,只是值是我想要的动态值
import json

with open('your_file.json', 'r+') as f:
    data = json.load(f)
    data['Issue'] = 'Example' # Update your value
    data['start date'] = 'Your date'
    json.dump(data, f, indent=4)
    f.truncate()