【发布时间】:2017-11-09 15:46:13
【问题描述】:
我正在尝试使用命令行编辑 Chrome 的首选项。该文件是一个 JSON 文件,我想编辑下面的数据:
{"browser":{"last_redirect_origin":""}}
到
{"browser":{"enabled_labs_experiments":["ssl-version-max@2"],"last_redirect_origin":""}}
我之前使用 sed 命令来完成此操作,但想知道如何使用 python 来完成此操作。这是我使用的命令:
sed -i '.bak' -e 's|\(\"browser\"\):{\(\".*origin\":\"\"\)}|\1:{\"enabled_labs_experiments\":[\"ssl-version-max@2\"],\2}|' ~/Library/Application\ Support/Google/Chrome/Local\ State
我不能使用jq 的原因是它不是mac 原生的,需要安装。我无法理解如何用 python 做到这一点。
如果有人可以帮助我或为我指明正确的方向,我将不胜感激。
编辑
这就是我的 python 脚本的样子:
import json
jsonData = json.loads(open('/Users/username/Library/Application Support/Google/Chrome/Local state').read())
if 'enabled_labs_experiments' in jsonData['browser']:
if 'ssl-version-max@2' in jsonData['browser']['enabled_labs_experiments']:
print('Exist')
else:
jsonData['browser']['enabled_labs_experiments'] = ['ssl-version-max@2']
print('Added')
更改完成后,我想将更改提交到文件中。
【问题讨论】:
-
不要使用'open(filename.read())'。改为与上下文一起使用。看我的回答。
-
@Rahul 谢谢!它正是我需要的。但是,它会稍微改变格式。有没有办法保持格式不变?如果您想看一下,这里是文件:drive.google.com/file/d/0B38bjAmXWElZM3VqUkFadldndlk/…