Python 列表中出现不必要的逗号
Unnecessary commas appearing in Python list
就上下文而言,我对 Python 和一般编程还很陌生。
我有一个列表(使用 selenium webdriver 创建)看起来非常正常,但是当我尝试将其导出到 CSV 文件时,列表中的每个值都被解释为在每个字符串值之间用逗号分隔。这会导致 CSV 文件为列表值中的每个字符串值创建一列。
在 Numbers macOS 应用程序中,我更改了设置,以便文件“使用制表符分隔值”。这将每个列表值放在一列(名称)下,但我仍然看到一个逗号分隔 CSV 文件中的每个字符串值。
我的行现在看起来像这样:
B,o,s,t,o,n
但我希望它能反映它在 python 上的列表中的样子:
Boston
这是我在 Python 中写的用于编写 CSV 文件的内容。
from selenium import webdriver
import time
import csv
PATH = "/users/charlesmiele/desktop/chromedriver"
driver = webdriver.Chrome(PATH)
url = 'https://www.niche.com/colleges/search/best-colleges/?page=1'
clist = []
driver.get(url)
time.sleep(1)
data = driver.find_elements_by_tag_name('h2')
for value in data:
print(value.text)
clist.append(value.text)
time.sleep(1)
with open("list.csv", 'w') as f:
writer = csv.writer(f)
writer.writerow(['Name'])
writer.writerows(clist)
driver.quit()
print(clist)
谢谢!
您可以使用数据框轻松完成此操作。它不会在 Excel.
中跳过一行
df = pd.DataFrame(clist,columns=['Name'])
df.to_csv('list.csv', index=False)
导入
import pandas as pd
您正在使用 writerows(rows)
。 Each element in rows
has to be an iterable (e.g., a list) of strings or numbers.
在您的 for
循环中,只需将 clist.append(value.text)
更改为 clist.append([value.text])
。这样,要写入的每一行都将包含一个只有 1 个字符串元素的列表。
for value in data:
print(value.text)
clist.append([value.text])
就上下文而言,我对 Python 和一般编程还很陌生。
我有一个列表(使用 selenium webdriver 创建)看起来非常正常,但是当我尝试将其导出到 CSV 文件时,列表中的每个值都被解释为在每个字符串值之间用逗号分隔。这会导致 CSV 文件为列表值中的每个字符串值创建一列。
在 Numbers macOS 应用程序中,我更改了设置,以便文件“使用制表符分隔值”。这将每个列表值放在一列(名称)下,但我仍然看到一个逗号分隔 CSV 文件中的每个字符串值。
我的行现在看起来像这样:
B,o,s,t,o,n
但我希望它能反映它在 python 上的列表中的样子:
Boston
这是我在 Python 中写的用于编写 CSV 文件的内容。
from selenium import webdriver
import time
import csv
PATH = "/users/charlesmiele/desktop/chromedriver"
driver = webdriver.Chrome(PATH)
url = 'https://www.niche.com/colleges/search/best-colleges/?page=1'
clist = []
driver.get(url)
time.sleep(1)
data = driver.find_elements_by_tag_name('h2')
for value in data:
print(value.text)
clist.append(value.text)
time.sleep(1)
with open("list.csv", 'w') as f:
writer = csv.writer(f)
writer.writerow(['Name'])
writer.writerows(clist)
driver.quit()
print(clist)
谢谢!
您可以使用数据框轻松完成此操作。它不会在 Excel.
中跳过一行df = pd.DataFrame(clist,columns=['Name'])
df.to_csv('list.csv', index=False)
导入
import pandas as pd
您正在使用 writerows(rows)
。 Each element in rows
has to be an iterable (e.g., a list) of strings or numbers.
在您的 for
循环中,只需将 clist.append(value.text)
更改为 clist.append([value.text])
。这样,要写入的每一行都将包含一个只有 1 个字符串元素的列表。
for value in data:
print(value.text)
clist.append([value.text])