gpt4 book ai didi

python - 下载的 csv 中的 `_csv.Error: line contains NUL`

转载 作者:行者123 更新时间:2023-12-04 15:14:52 26 4
gpt4 key购买 nike

我从一个 url 下载了一个 csv 文件,并使用 csv.reader 读取它的内容。但是,当我尝试遍历 _csv.reader 对象时,我得到了 _csv.Error: line contains NUL

我必须提到,如果我手动复制粘贴(ctrl+a、ctrl+cctrl+v)csv 的内容到代码工作的不同 csv。

这是到目前为止的代码。

import csv
import requests

url='https://sedo.com/fileadmin/documents/resources/expiring_domain_auctions.csv'

response=requests.get(url)

with open('downloaded_csv.csv','wb') as out_file:
out_file.write(response.content) # file is written properly in disk, can open with editor

with open('downloaded_csv.csv',newline='') as in_file:
csv_contents=csv.reader(in_file,delimiter=';')
print((csv_contents))
for row in csv_contents: # _csv.Error: line contains NUL
print(row)

谁能告诉我如何在我的 python 程序中读取这个文件的内容?

最佳答案

文件编码为UTF-16,因此读取文件时必须指定此编码。

>>> # Check the first 100 characters...
>>> r = requests.get(url)
>>> r.content.decode('utf-16')[:100]
'sep=;\n"Domain Name";"Start Time";"End Time";"Reserve Price";"Domain is IDN";"Domain has hyphen";"Dom'

根据您的平台,您需要像这样打开文件:

with open('downloaded_csv.csv', newline='', encoding=encoding) as in_file:

其中encoding的值为utf-16, utf-16-le, utf-16-be之一

请注意,您可能需要删除或跳过初始的 "sep=;" 行。

关于python - 下载的 csv 中的 `_csv.Error: line contains NUL`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64516527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com