列表到csv Python

new9mtju  于 12个月前  发布在  Python
关注(0)|答案(3)|浏览(114)

当我尝试在csv中保存一个Python列表时,csv中有我想保存的项目,这些项目由每个字符分隔。
我有一个这样的链接列表:

links = ['https://www.portalinmobiliario.com/MLC-2150551226-departamento-los-talaveras-id-117671-_JM#position=1&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d', 
         'https://www.portalinmobiliario.com/MLC-2148268902-departamento-los-espinos-id-116373-_JM#position=2&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d']

字符串
我试图用下面的代码将其保存到CSV:

with open('links.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(links)


我从列表中得到的结果是链接在一行中,但每个字符在一列中。

  • 我怎样才能让链接按行分开,但在同一列?
hwamh0ep

hwamh0ep1#

writer.writerows期望参数是行列表的可迭代对象(引用文档:“对于Writer对象,行必须是字符串或数字的可迭代对象”);现在它将链接字符串解释为1个字符的列的行(因为字符串确实是字符串的可迭代对象)。
简而言之,你需要将每个链接 Package 在一个列表中(一个1元组也可以),例如使用生成器:

writer.writerows([link] for link in links)

字符串

vql8enpb

vql8enpb2#

对于csv.writer()来说,将单个字符串写入CSV行有点冒险,因为它需要一个“列表列表”作为输入,而“字符串列表”看起来很像“列表列表”。
由于我们并没有真正利用csv包的功能,我们可能只是直接使用文件句柄来进行编写。

links = [
    'https://www.portalinmobiliario.com/MLC-2150551226-departamento-los-talaveras-id-117671-_JM#position=1&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d', 
    'https://www.portalinmobiliario.com/MLC-2148268902-departamento-los-espinos-id-116373-_JM#position=2&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d'
]

with open('links.csv', 'w') as f:
    for link in links:
        f.write(f"{link}\n")

字符串

irlmq6kh

irlmq6kh3#

with open('links.csv', 'w', newline='') as f:
   writer = csv.writer(f)
   for link in links:
      writer.writerow([link])

字符串
这个应该能帮到你

相关问题