You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多行数据的Python字典写入CSV文件

嘿,我来帮你搞定把爬取到的字典数据写入CSV的问题~

首先得先把你的爬虫代码补全,确保能把页面数据整理成字典列表(这是写入CSV的核心格式),我先帮你完善下爬虫逻辑(你可以根据实际页面结构调整选择器):

import requests
from bs4 import BeautifulSoup
import re
import csv

links = ["34519-kevitsa-copper-concentrator-plant", "34520-kevitsa-copper-mine", "34356-glogow-copper-refinery"]
data_list = []  # 用来存储所有条目字典的列表

for l in links:
    page = requests.get(f"https://www.industryabout.com/country-territories-3/2199-finland/copper-mining/{l}")
    soup = BeautifulSoup(page.content, 'lxml')
    
    entry_dict = {}
    # 这里替换成你实际提取数据的逻辑,比如假设页面是"Key: Value"的行结构
    rows = soup.select("div.content-section p")  # 改成你实际用的选择器
    for row in rows:
        text = row.get_text(strip=True)
        # 用正则分割键值对,匹配类似"Plant Name: Kevitsa Concentrator"的格式
        match = re.match(r"(.+?):\s*(.+)", text)
        if match:
            key = match.group(1).strip()
            value = match.group(2).strip()
            entry_dict[key] = value
    # 可选:给每条数据加上来源标识
    entry_dict['source_page'] = l
    data_list.append(entry_dict)

接下来就可以把这个字典列表写入CSV了,给你两种常用方法:

方法1:用Python内置csv模块(无需额外安装)

这是最基础的方案,不用装第三方库,兼容性拉满:

# 收集所有唯一的表头(把所有字典的键合并,避免漏字段)
fieldnames = set()
for item in data_list:
    fieldnames.update(item.keys())
fieldnames = list(fieldnames)  # 转成列表格式

# 写入CSV文件
with open('copper_mining_data.csv', 'w', newline='', encoding='utf-8') as csvfile:
    # 初始化DictWriter,指定表头
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    # 先写表头行
    writer.writeheader()
    # 逐条写入字典数据
    for item in data_list:
        writer.writerow(item)

这样生成的CSV里,每个字典对应一行,缺失的字段会自动留空,不用担心不同页面字段不一致的问题。

方法2:用pandas库(更简洁,适合大数据量)

如果你平时会用数据分析工具,pandas写CSV会更省心:

import pandas as pd

# 直接把字典列表转成DataFrame
df = pd.DataFrame(data_list)
# 写入CSV,index=False表示不生成行索引列
df.to_csv('copper_mining_data_pandas.csv', index=False, encoding='utf-8')

没装pandas的话,先运行pip install pandas安装就行。

小提醒:

  • 一定要确保data_list是字典的列表,每个字典对应一条独立的数据(比如一个工厂/矿山的信息)
  • 编码选utf-8能避免特殊字符或中文乱码
  • 如果页面结构和我假设的不一样,只需要调整爬虫里提取键值对的逻辑就行,写入CSV的代码不用改

内容的提问来源于stack exchange,提问作者pickenpack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:32:36