我正在尝试使用命令行编辑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
的原因是它不是原生的,需要安装。我无法理解如何使用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')
完成更改后,我想将更改提交到文件。
答案 0 :(得分:3)
为什么使用正则表达式为什么不在python中使用内置的json模块?
import json
d = json.loads(path_to_your_file)
d["browser"]["enabled_labs_experiments"] = ["ssl-version-max@2"]
答案 1 :(得分:1)
import json
with open(path_to_json_file) as f:
data = f.read()
d = json.loads(data)
d["browser"]["enabled_labs_experiments"] = ["ssl-version-max@2"]
with open(path_to_json_file, 'w') as f:
f.write(json.dumps(d))