Python:移除字典键值间空格及JSON读写格式优化问题
解决Python JSON序列化后键值间出现空格的问题
这个问题我之前也碰到过!其实你误会了一点:json.loads()把JSON字符串转成字典对象后,字典本身根本不存在键值间的空格——那些空格是后续把字典序列化回JSON格式时,Python的json模块默认添加的格式化内容。要生成和原始文件一样的无空格紧凑JSON,只需要在序列化时调整参数就行。
核心解决方案
使用json.dump()或json.dumps()时,指定separators=(',', ':')参数,替换默认的带空格分隔符(默认是(', ', ': '))。
完整代码示例
import json # 读取原始无空格的JSON文件 with open("input.json", "r", encoding="utf-8") as input_file: raw_json = input_file.read() # 解析为字典并进行你的数据处理 data_dict = json.loads(raw_json) # 这里写你的转换处理逻辑,比如修改字段值 data_dict["content"]["name"] = "updated name test" # 写入无空格的紧凑JSON到输出文件 with open("output.json", "w", encoding="utf-8") as output_file: # 关键就是这个separators参数,去掉了分隔符后的空格 json.dump(data_dict, output_file, separators=(',', ':'))
原理说明
json模块默认会为了可读性添加空格,但我们不需要格式化时,就可以手动指定分隔符:- 第一个元素
',':表示键值对之间用逗号分隔,不带空格 - 第二个元素
':':表示键和值之间用冒号分隔,不带空格
- 第一个元素
- 这样生成的JSON就和你原始文件的格式完全一致,没有任何多余空白字符,保证文件体积最小。
如果是要生成JSON字符串而不是直接写入文件,用json.dumps()同样生效:
compact_json_str = json.dumps(data_dict, separators=(',', ':'))
内容的提问来源于stack exchange,提问作者user
相关产品推荐
相关产品推荐

