社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何将列表放入csv文件python中的一个单元格(在我的例子中是一本书的作者列表),所有作者都在一个单元格中

ansarali • 3 年前 • 1357 次点击  

我正试图从图书网站上获取一本书的作者姓名。我把名字放在一列多行中。我希望所有名字都在csv的一个单元格中。以下是我的全部代码

from selenium import webdriver    
import pandas as pd    
driver = webdriver.Chrome()    
site = 'https://www.goodreads.com/book/show/50148349-manto-and-chughtai?from_search=true&from_srp=true&qid=ZARMElvyyt&rank=3'

driver.get(site)    
authors = [ ]    
names = driver.find_elements_by_xpath('//div[@class="authorName__container"]')

for name in names:
    authors.append(name.find_element_by_xpath('.//a[@class="authorName"]').text)

df = pd.DataFrame({'Author Names': authors})    
df.to_csv("Authors_list.csv", index=False)
print(df)

这是我的输出,我得到了,我希望这四个名字都在一个单元格中

enter image description here

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133827
 
1357 次点击  
文章 [ 3 ]  |  最新文章 3 年前
DPGraham4401
Reply   •   1 楼
DPGraham4401    3 年前

Pandas dataframe.to_csv() 方法将根据每个列表元素的外观使用换行符来编写该元素。您无意中完成了堆栈溢出问题 trying to do here .

尝试将作者设置为字符串,并将每个新作者添加到该字符串而不是列表。只要作者的姓名中没有逗号,在office中打开后,所有值都将显示在同一单元格中。

José Miguel
Reply   •   2 楼
José Miguel    3 年前

我没有安装和安装Selenium来测试它。
你能试试这个小办法吗?

from selenium import webdriver

import pandas as pd

driver = webdriver.Chrome()

site = 'https://www.goodreads.com/book/show/50148349-manto-and-chughtai?from_search=true&from_srp=true&qid=ZARMElvyyt&rank=3'

driver.get(site)

authors = [ ]

names = driver.find_elements_by_xpath('//div[@class="authorName__container"]')

for name in names:

    authors.append(name.find_element_by_xpath('.//a[@class="authorName"]').text)

authors_in_one_cell = ', '.join(authors)

df = pd.DataFrame({'Author Names': authors_in_one_cell})

df.to_csv("Authors_list.csv", index=False)

print(df)
Manjunath K Mayya
Reply   •   3 楼
Manjunath K Mayya    3 年前

你可以试试这个。

authors = ','.join(df['authors'].to_list())
with open('mycsv.csv', 'w', newline='') as myfile:
    myfile.write(authors)