我目前正在尝试创建一个扫描CSV文件的程序,并使用BING API搜索文件中的条目,然后将结果粘贴到电子表格中。
此宏的一部分还涉及将正在搜索的术语粘贴到电子表格中,因此我有效地将CSV中的条目复制到电子表格中,这听起来毫无意义,但却起着至关重要的作用。
我的CSV看起来像这样:
EntryNumber Name Company TitleNumber
123 john hsbc 5555
124 chris ford 6666
125 adam apple 7777
我使用Pandas通过使用以下代码逐行迭代来从CSV中提取数据:
表示索引,df.iterrows()中的行:
entrynumber = row['EntryNumber']
name = row['Name']
company = row['Company']
title = row['TitleNumber']
然后我尝试使用xlsxwriter将其中一个变量写入电子表格中的单元格:
worksheet.write(row, col, entrynumber)
但是这会产生类型错误,回溯如下:
Traceback (most recent call last):
File "CSVtest.py", line 68, in <module>
worksheet.write(row, col, entrynumber)
File "/usr/local/lib/python3.5/site-packages/xlsxwriter/worksheet.py", line 57, in cell_wrapper
int(args[0])
File "/usr/local/lib/python3.5/site-packages/pandas/core/series.py", line 92, in wrapper
"{0}".format(str(converter)))
TypeError: cannot convert the series to <class 'int'>
Exception ignored in: <bound method Workbook.__del__ of <xlsxwriter.workbook.Workbook object at 0x1088118d0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/xlsxwriter/workbook.py", line 148, in __del__
Exception: Exception caught in workbook destructor. Explicit close() may be required for workbook.
不知道为什么会发生这种情况,我已经尝试将变量转换为字符串,但错误仍然存在,任何人都有任何想法?
非常感谢任何帮助:)谢谢。
答案 0 :(得分:1)
嘿大家我想出了一个解决方案,其他任何人都像我一样愚蠢地犯同样的错误。
基本上,当我使用XLSXWRITER时,我有一个名为&#39; row&#39;告诉模块从哪里开始将数据写入电子表格。 在我的阴霾中,我完全忘记了当我使用PANDAS使用代码迭代CSV文件时,我也使用了相同的名称:
for index,row in df.iterrows():
显然这会导致某种错误,因为Python在两者之间混淆了。
无论如何它不太可能,但希望这可以帮助那些在学习时犯同样错误的人!