如何用Python将每个单词写入CSV的单个单元格?
问题解决方法
你遇到的问题是因为writerow()方法接收的是可迭代对象,当直接传入字符串时,它会把字符串拆成单个字符,每个字符对应一个单元格。要让完整单词放在单个单元格里,只需把字符串包装成列表传入即可。另外你的代码里还有个小错误:关闭文件时用了CSVFile.close(),但你的文件对象是CSVFile1,这里会报错,建议用with语句自动管理文件,避免这类问题。
修正后的代码:
import csv # 用with语句自动处理文件打开/关闭 with open('Group_A_participant_1_1.csv', 'a', newline='') as CSVFile1: writeCSV1 = csv.writer(CSVFile1) for instance in data['annotations'][3]['instances']: var = instance['arguments'].get('argument1') # 将字符串包装成列表,确保完整单词在一个单元格 if var: # 避免写入空值 writeCSV1.writerow([var])
- 关键修改:把
writeCSV1.writerow(var)改成writeCSV1.writerow([var]),这样整个字符串会被当作列表的一个元素,写入单个单元格。 - 用
with语句:无需手动调用close(),文件会在代码块结束后自动关闭,更安全。 - 添加
newline='':避免Windows系统下写入CSV时出现多余空行。 - 增加
if var判断:如果argument1不存在,跳过写入空行。
内容的提问来源于stack exchange,提问作者Glory
相关产品推荐
相关产品推荐

