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

如何实现嵌套列表中每个URL与同列表最后非空URL配对并导出CSV?

解决301跳转URL配对问题:将每行URL与最后非空URL关联并导出CSV

看起来你已经迈出了第一步,把CSV转成了嵌套列表,接下来我们只需要针对每行数据做几个关键处理,就能得到你想要的配对结果。我来给你梳理完整的实现方案:

核心思路

对于每行的URL列表,我们需要:

  • 先过滤掉所有空值(也就是那些nan),只保留有效的URL
  • 找到该行最后一个有效URL——这就是最终的跳转目标
  • 把该行里除了最后一个之外的所有有效URL,分别和这个最终URL配对
  • 最后把所有配对结果导出成CSV,方便开发者直接使用

完整实现代码

我把整个流程整合到一个函数里,你可以直接用:

import pandas as pd
import numpy as np

def process_301_urls(input_csv_path, output_csv_path):
    # 读取原始CSV,无表头
    csv_data = pd.read_csv(input_csv_path, header=None)
    paired_urls = []
    
    for _, row in csv_data.iterrows():
        # 过滤掉空值,得到当前行的有效URL列表
        valid_urls = [url for url in row.tolist() if pd.notna(url)]
        
        # 只有当有效URL数量>=2时,才有配对的意义(单个URL没有跳转关系)
        if len(valid_urls) >= 2:
            final_target_url = valid_urls[-1]
            # 遍历前面所有URL,和最终目标URL配对
            for original_url in valid_urls[:-1]:
                paired_urls.append([original_url, final_target_url])
    
    # 将配对结果转为DataFrame并导出CSV,添加清晰的表头
    pd.DataFrame(paired_urls, columns=["原始URL", "最终跳转URL"]).to_csv(output_csv_path, index=False)

# 调用示例:替换成你的输入输出路径
process_301_urls("Example_301_sheet.csv", "301配对结果.csv")

代码细节说明

  1. 空值过滤:用pd.notna()来判断URL是否有效,比直接判断url != nan更可靠,因为numpy的nan比较特殊,普通的相等判断会失效。
  2. 配对逻辑:比如你给出的示例列表[['example.com/url1', 'example.com/url2', nan, nan]],处理后会生成[['example.com/url1', 'example.com/url2']],完全符合你的需求。如果遇到更长的跳转链,比如['a.com/page1', 'b.com/redirect', 'c.com/final', nan],会生成两对:['a.com/page1', 'c.com/final']和['b.com/redirect', 'c.com/final'],这样开发者可以一次性把所有中间跳转的URL都直接指向最终地址,彻底消除301链。
  3. CSV导出:添加了表头原始URL和最终跳转URL,导出时关闭索引列(index=False),让输出的CSV更干净,直接就能用。

测试验证

你可以先拿一小部分数据测试这个函数,确认配对结果符合预期后,再处理完整的URL列表。如果某行只有一个有效URL,函数会自动跳过它,因为没有跳转关系需要处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:53:28