【发布时间】:2020-11-28 03:13:29
【问题描述】:
在下面的代码中,每当行没有三个标识符中的每一个时,我都会收到一个错误。如果文件中不存在标识符,如何跳过该行并移至下一行?如果第一行没有 mfgcode、modelno 和 qtyavail,则程序失败。感谢您的宝贵时间。
import csv
import re
with open('file.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
ff = []
for line in csv_reader:
ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
df = pd.DataFrame(ff,columns =['mfgcode','modelno','qtyavail'])
df.to_csv("test.csv",index=False)
print (df)
追溯:
line 10, in <module>
ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
AttributeError: 'NoneType' object has no attribute 'group'
csvfile 的前三行:
<checkresp> <header errcode="success" errmsg="sucess" />
<part branch="1" core="0.00" cost="15.69" deliverytime="1" desc="" errcode="success" kit="" linecode="nike" linenum="1" list="23.42" mfgcode="nike" modelno="1221" qtyavail="120" qtyreq="1" uom="" />
</checkresp>
【问题讨论】:
-
您能否发布所引发错误的完整回溯(终端输出)?这将帮助我们缩小问题所在。
-
如果您还可以共享两行,那将非常有帮助 - 一个存在标识符,另一个不存在标识符。
-
@JoshHonig 我已更新以包含回溯。谢谢
-
@Harsh 我更新了帖子,包括 csv 的前三行。第一行和第三行没有标识符,但第二行有。谢谢
标签: python csv python-requests append re