python - 当我修改嵌套字典的 json 中的值时,它正在删除其他字典
问题描述
我试图弄清楚如何修改 json 文件中的值。我已将其简化为两个字典的字典。我可以修改 json 文件中的值,但生成的 json 文件不再是字典的字典,只是包含我修改的值的一个字典。有什么想法可以解决这个问题吗?
原始json文件
{
"test_settings":
{
"rigID":"r1",
"test":"blank"
},
"temperature_settings":
{
"temperature_start":"40.1",
"temperature_stop":"blank",
"temperature_step":"blank"
}
}
我的代码
import json
def modify_json_file(json_file):
with open(json_file, "r") as input_json:
json_data = json.load(input_json)
print("type of data: ", type(json_data))
for k,v in json_data.items():
print(k,v)
print('\n'*2)
temperature_settings = json_data["temperature_settings"]
print("type of temperature_settings: ", type(temperature_settings))
print(temperature_settings["temperature_start"])
temperature_settings["temperature_start"] = 99.9
with open(json_file, "w") as input_json:
json_data = json.dump(temperature_settings, input_json)
print('\n'*25)
modify_json_file("file6.json")
现在听
{"temperature_start": 99.9, "temperature_stop": "blank", "temperature_step": "blank"}
期望的结果
{
"test_settings":
{
"rigID":"r1",
"test":"blank"
},
"temperature_settings":
{
"temperature_start":"99.9",
"temperature_stop":"blank",
"temperature_step":"blank"
}
}
解决方案
好吧,您只回信temperature_settings
,所以您只能得到...只需使用:
with open(json_file, "w") as input_json:
json.dump(json_data, input_json)
得到预期的结果。
推荐阅读
- appimage - 如何使 AppDir 文件可用于 AppImage 应用程序?
- python - Docker 构建在 Windows 10 Pro x64 上失败
- c# - 从 wpf 中的另一个继承 userControl
- c++ - C ++管道分隔的文本文件以逗号分隔
- python - kMeans Clustering using TF2.0, ValueError: tf.function-decorated function trying to create variables on non-first call
- python - 如何在路由函数中启用仅开发行为
- javascript - 为什么我无法从 Firebase 的子集合中查询子集合或文档?
- r - 如何按组运行(线性)回归并将系数添加到原始data.table?
- vue.js - laravel 和 vuejs 中的块文件 url 问题
- python - 将单应性应用于整个图像后如何将 2D 点转换回来?