如何用Python从HTML文件提取JSON数据并导出为CSV?
从本地HTML提取JSON并导出为CSV的简单Python方案
实现步骤
- 提取HTML中的JSON内容:使用
BeautifulSoup定位<pre>标签,你的JSON数据嵌套在这个标签内 - 解析JSON数据:用Python内置的
json模块把字符串转成可操作的列表字典 - 导出为CSV:用
csv模块的DictWriter快速生成带指定表头的CSV文件
完整代码
# 导入需要的模块 from bs4 import BeautifulSoup import json import csv # 1. 读取本地HTML文件 with open('sample.html', 'r', encoding='utf-8') as html_file: html_content = html_file.read() # 2. 解析HTML,提取pre标签里的JSON字符串 soup = BeautifulSoup(html_content, 'html.parser') json_text = soup.find('pre').get_text(strip=True) # 3. 把JSON字符串转成Python列表(每个元素是字典) data_list = json.loads(json_text) # 4. 定义需要导出的字段顺序 fields = ["SpecificIdent", "SpecificNum", "Meter", "Power", "WPower", "SNumber", "isI"] # 5. 写入CSV文件 with open('output.csv', 'w', newline='', encoding='utf-8') as csv_file: # 创建DictWriter对象,指定表头 writer = csv.DictWriter(csv_file, fieldnames=fields) # 写入表头 writer.writeheader() # 遍历每个数据对象,处理null值后写入 for item in data_list: # 把null值转为空字符串,避免CSV写入报错 processed_item = {k: v if v is not None else '' for k, v in item.items()} writer.writerow(processed_item) print("CSV文件已成功生成:output.csv")
新手操作指南
- 安装依赖:打开命令行执行
pip install beautifulsoup4 - 把代码保存为
extract_json_to_csv.py,和sample.html放在同一个文件夹 - 运行代码:命令行执行
python extract_json_to_csv.py - 查看生成的
output.csv文件即可
内容的提问来源于stack exchange,提问作者PythonAnthony
相关产品推荐
相关产品推荐

