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

Python读取CSV生成URL时,如何去除列表的[]与单引号?

解决URL中多余方括号和单引号的问题

嘿,我来帮你搞定这个小问题!你现在生成的URL里带['Easton']这种格式,核心原因是你读取CSV时把整行列表直接存进了towns数组——csv.reader返回的每一行row本身就是一个列表(哪怕每行只有一个值),所以当你拼接URL时,Python会把这个列表转换成它的字符串表示(也就是带方括号和引号的样子)。

具体修改步骤

  1. 修正城镇列表的读取逻辑:
    把读取城镇时的towns.append(row)改成towns.append(row[0]),这样你存的就是每行里的第一个(也是唯一一个)字符串值,而不是整个列表。

  2. 简化URL生成的循环(可选但更Pythonic):
    不用通过range(len(towns))来遍历索引,直接遍历towns里的每个城镇字符串,代码更简洁易读。

  3. 用with语句管理文件(优化):
    原来的f = open(...)最好换成with open(...) as f,这样Python会自动帮你关闭文件,避免资源泄漏。

修改后的完整代码

import csv

# 读取需要爬取的城镇列表,用with语句自动管理文件
with open('townList.csv', 'r') as f:
    reader = csv.reader(f)
    towns = []
    for row in reader:
        # 取每行的第一个元素(城镇名称),存入列表
        towns.append(row[0])

# 基础URL,URL剩余部分遵循'town-state-abbreviation'格式
base_url = "https://datausa.io/profile/geo/"
url_list = []
# 直接遍历towns里的每个城镇字符串
for town in towns:
    url = f'{base_url}{town}-pa'
    url_list.append(url)

print(url_list)

# 写入结果文件,同样用with语句
with open('urls.csv', 'w') as output:
    writer = csv.writer(output, lineterminator='\n')
    for val in url_list:
        writer.writerow([val])

效果验证

修改后生成的URL就会变成你期望的样子:https://datausa.io/profile/geo/Easton-pa,完全去掉了多余的方括号和单引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:39:10