使用Python 3.8脚本更改json值
我想用Python 3.8脚本更改一个json值 我知道在Python中,字符串是不可变的,所以不能在适当的位置更改它们的字符 这对我很有帮助: TypeError:“str”对象不支持项分配使用Python 3.8脚本更改json值,python,json,autokey,Python,Json,Autokey,我想用Python 3.8脚本更改一个json值 我知道在Python中,字符串是不可变的,所以不能在适当的位置更改它们的字符 这对我很有帮助: TypeError:“str”对象不支持项分配 TypeError:'str'对象不支持项目分配 项目['hotKey']=“” TypeError:“str”对象不支持项分配 脚本:item['hotKey']=“” 从pathlib导入路径 导入json home=str(Path.home()) path=home+“/.config/autok
TypeError:'str'对象不支持项目分配
项目['hotKey']=“”
TypeError:“str”对象不支持项分配
脚本:item['hotKey']=“”
从pathlib导入路径
导入json
home=str(Path.home())
path=home+“/.config/autokey/data/Sample Scripts/”
jsonFilePath=home+“/.config/autokey/data/Sample Scripts/.run-run-lintalisahk-all.json”
将open(jsonFilePath)作为f:
data=json.load(f)
对于数据['hotkey']中的项:
项目['hotKey']=“”#项目['hotKey']。替换('home',项目['id'])
将open(jsonFilePath,'w')作为f:
json.dump(数据,f)
json文件
{
"hotkey": {
"hotKey": "<f12>"
},
}
{
“热键”:{
“热键”:”
},
}
您需要在以下操作之前添加json['hotkey']
引用:
for item in data['hotkey']:
data['hotkey'][item] = "<f11>" # item['hotKey'].replace('$home', item['id'])
数据['hotkey']中的项的:
数据['hotkey'][item]=“”#item['hotkey']。替换('home',item['id'])
我的原始尝试:
import json
j = '''
{
"hotkey": {
"hotKey": "<f12>"
}
}
'''
data = json.loads(j)
for x in data['hotkey']:
data['hotkey'][x] = '<f11>'
print(data)
导入json
j='''
{
“热键”:{
“热键”:”
}
}
'''
data=json.loads(j)
对于数据[“热键”]中的x:
数据['hotkey'][x]=''
打印(数据)
您需要在以下操作之前添加json['hotkey']
引用:
for item in data['hotkey']:
data['hotkey'][item] = "<f11>" # item['hotKey'].replace('$home', item['id'])
数据['hotkey']中的项的:
数据['hotkey'][item]=“”#item['hotkey']。替换('home',item['id'])
我的原始尝试:
import json
j = '''
{
"hotkey": {
"hotKey": "<f12>"
}
}
'''
data = json.loads(j)
for x in data['hotkey']:
data['hotkey'][x] = '<f11>'
print(data)
导入json
j='''
{
“热键”:{
“热键”:”
}
}
'''
data=json.loads(j)
对于数据[“热键”]中的x:
数据['hotkey'][x]=''
打印(数据)
您只需要数据[“热键”][“热键”]=”
,无需循环。您永远不会更改字符串。你可以指定一个新字符串,一个文字,或者以某种方式构建。我输入了一个错误。它应该是数据[“热键”][“热键”]=“顺便说一句,项
变量依次是每个键(即字符串)。您只需要数据[“热键”][“热键”]=”
,无需循环。您永远不会更改字符串。你可以指定一个新字符串,一个文字,或者以某种方式构建。我输入了一个错误。它应该是data[“hotkey”][“hotkey”]=“顺便说一句,你的项
变量依次是每个键(即一个字符串)。这没关系,但(再次)我怀疑他是否真的想将所有热键更改为同一个键。向上投票假设这只是一个例子。两个代码段都将所有值更改为”
不管键是什么。@quamrana我的解决方案只更改一个值,它的工作原理是:是的,没错,因为您使用了@progmatico的解决方案,而不是此答案中的循环代码。这是可以的,但是(再次)我怀疑他是否真的想将所有热键更改为同一个键。向上投票假设这只是一个例子。无论键是什么,这两个代码段都将所有值更改为“
。@quamrana我的解决方案只更改一个值,它的工作原理是:是的,没错,因为您使用了@progmatico的解决方案,而不是这个答案中的循环代码。