JSON文件已加载:
with open("samples.json", "r") as read_file:
data = json.load(read_file)
现在,我将JSON-String中的键“ 22981”替换为“ Automat”:
d = json.loads(json.dumps(data).replace('"22981"','"Automat"'))
这很好。但是,当我尝试使用变量执行此操作时,它将无法正常工作,例如:
d = json.loads(json.dumps(data).replace('"{0}"'.format(key1), '"Automat"'))
有帮助吗?谢谢!
答案 0 :(得分:0)
d = json.loads(json.dumps(data).replace("{0}".format(key1), "Automat"))
您有一个单引号和一个双引号。
编辑:您可能还应该了解f字符串
d = json.loads(json.dumps(data).replace(f"{key1}", "Automat"))
请参见PEP 498。
答案 1 :(得分:0)
我认为以下代码可帮助您将“ 22981”键替换为“自动机”
import json
outfile = open('outfile.json', 'w')
with open("samples.json", "r") as read_file:
for data in read_file: #To iterate on multiple records in the file(here data is one json record),
data = json.loads(data)
data["Automat"] = data.pop('22981', '')
outfile.write(json.dumps(data))
答案 2 :(得分:0)
您也可以使用python
with open("samples.json", "r") as read_file:
data = json.load(read_file)
key="something"
if data.get(key,None):
val=data.pop(key)
data['Automat']=val
答案 3 :(得分:0)
我通过解决方法解决了这个问题。我在json.loads之前做了替换
import json
import csv
with open("sensors.json", "r") as read_file:
sensors = json.load(read_file)
with open ("samples.json", "r") as myfile:
data=myfile.read()
for key1 in sensors:
data = data.replace(key1, sensors[key1]['name'])
data = json.loads(data)