将 PIL 图像下载到 CSV

Download PIL image to CSV

我正在处理我的第一个网络抓取项目,并试图将我的数据集写入 .csv 文件。将字符串写入 .csv 似乎工作正常:

fieldnames = ['fname', 'lname', 'image']

with open('dataset.csv', 'w', encoding='UTF8', newline='') as f:
    newrow = {'fname': 'John', 'lname': 'Doe'}
    writer.writerow(newrow)

但我还有一个图像 URL 列表,我想将其作为 .png 格式下载到 .csv 文件。但是,当我尝试执行此操作时,图像将作为格式为 '<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=120x159 at 0x7FC0A0...>'

的字符串写入 .csv

这是我为此编写的代码:

response = requests.get('someurl')
image_bytes = io.BytesIO(response.content)
img = PIL.Image.open(image_bytes)
newrow = {'image': img}
writer.writerow(newrow)

我不确定如何才能将实际的 .png 文件保存到 csv 文件中。

逗号分隔值 (CSV) 文件是带分隔符的 text file所以二进制数据不能存储在CSV中。它们是将二进制数据编码为文本的几种方法。

我认为 standart library Base64 是 CSV 的不错选择。

Tim Roberts 的回答中写了另一种方法。