如何将JSON数据作为多行文本嵌入JSON列表并保存为格式化文件
解决JSON中多行字符串存储问题
要让JSON文件里的networkLogFilePath值呈现为多行文本,核心是在字符串中插入换行符\n——因为JSON本身不支持原生多行字符串,只能通过显式的换行标记实现文件中的多行显示。以下是具体实现方案:
方案一:预处理日志内容,生成带换行的字符串
如果你的网络日志本身是JSON格式的大型数据,先将日志用json.dumps格式化带缩进,再作为字符串存入mylist:
import json # 假设这是你的网络日志原始数据 network_log_data = { "requests": [{"url": "https://example.com", "status": 200}, ...], "responses": [...] } # 把日志格式化为带缩进的多行字符串 formatted_log = json.dumps(network_log_data, indent=4) # 追加到站点数据列表 mylist.append({ "networkLogFilePath": formatted_log, "siteName": "目标站点" }) # 保存最终JSON文件 with open("sites_data.json", "w", encoding="utf-8") as f: json.dump(mylist, f, indent=4, ensure_ascii=False)
生成的JSON文件中,networkLogFilePath的内容会因包含\n和缩进,在文本编辑器中显示为多行。
方案二:读取已有日志文件,直接保留原换行
如果网络日志已经是本地的JSON文件,直接读取文件内容(自带换行)存入即可:
# 读取本地日志文件的原始内容 with open("network_log.json", "r", encoding="utf-8") as f: log_content = f.read() # 追加到站点数据列表 mylist.append({ "networkLogFilePath": log_content, "siteName": "目标站点" }) # 保存最终JSON文件 with open("sites_data.json", "w", encoding="utf-8") as f: json.dump(mylist, f, indent=4, ensure_ascii=False)
关键说明
- JSON规范里没有“多行字符串”概念,所有字符串本质是单行存储,但文本编辑器会解析
\n为换行,所以只要字符串内包含\n,打开文件时就会呈现多行效果。 - 之前用
json.dumps的indent参数只对整个JSON结构生效,不会处理单个字符串内部的格式,因此需要单独预处理要存入的日志字符串。
内容的提问来源于stack exchange,提问作者Swati Mishra
相关产品推荐
相关产品推荐

