如何给Tkinter输入框保存的JSON文件添加换行符?
解决JSON文件写入后添加换行符的问题
你之前的两种方法没生效的原因很明确:
- 使用
newline="\r\n"参数:这个参数是控制文件文本模式下的换行转换规则,但json.dump本身不会主动给写入的内容追加换行,所以设置了也起不到效果。 - 给
usern加"\n"后用json.dump:json.dump会把字符串里的换行符转义成\\n保存到文件中,你看到的是转义后的字符,不是实际的换行。
给你两种可行的解决方案:
方案一:先写入JSON内容,再手动追加换行符
先通过json.dump把输入内容写入文件,之后直接调用文件对象的write方法写入换行符:
with open(udf, "a", encoding="utf-8") as file_object: json.dump(usern, file_object) file_object.write("\n") # 手动添加实际换行
方案二:先转成JSON字符串,再拼接换行符写入
用json.dumps把输入内容转换成JSON格式的字符串,然后拼接换行符后写入文件:
with open(udf, "a", encoding="utf-8") as file_object: json_content = json.dumps(usern) file_object.write(json_content + "\n")
这两种方法都能让每次提交的内容在JSON文件里单独占一行,不会出现换行符被转义的问题。
内容的提问来源于stack exchange,提问作者AngusAU293
相关产品推荐
相关产品推荐

