如何使用python将img保存到csv?

s8vozzvw  于 2023-04-03  发布在  Python
关注(0)|答案(1)|浏览(131)

我在网上搜索如何粘贴图像(不是url到csv),但没有一个好的答案给我。
Want to do like at image below
现在使用这样的方法:

data = []
def scrape_data(iterator):
    workbook = xlsxwriter.Workbook('1.xlsx')
    worksheet = workbook.add_worksheet()
    for i in iterator:
        url = f'https://kream.co.kr/api/p/tabs/all/?cursor={i}&&request_key=7844c102-1f44-4bc5-9d4f-9a5be38b04dd'
        r  = requests.get(url, headers=headers,cookies=cookies)
        data_json = r.json()
        print(f'Page no.{i}')
        print(r)

        try:
            for idx,item in enumerate(data_json['items']):
                eng_name = item['product']['release']['name']
                orig_name = item['product']['release']['translated_name']
                img_url = item['product']['release']['image_urls'][0]
                img = Image.open(requests.get(img_url, stream = True).raw)

                img.save(f'{i*idx}.png')

                worksheet.set_column('F:F', width=50)

                worksheet.insert_image(f'F{i*idx}', rf"{i*idx}.png", {'x_scale': 0.1, 'y_scale': 0.1})
                model_num = item['product']['release']['style_code']
                model_num_w_dash = item['product']['release']['style_code'].replace('-', '')
                brand = item['product']['brand']['name']
                id = item['product']['release']['id']
                links = f'https://kream.co.kr/products/{id}' 
                data.append([eng_name,orig_name,model_num,model_num_w_dash,brand,links]) 
        except:
            continue  
    workbook.close()
    

def save(data):
    header = ['English Name', 'Original Name','Model Number', 'Model number(without dash)', 'Brand', 'Link']
    df = pd.DataFrame(data=data, columns=header)
    df.to_csv('example.csv', sep=';', encoding='utf-8')

这个方法有一些错误,看起来不清楚。我有一些空列和错误:用户警告:无法在(-1,5)处插入图像。warn('Cannot insert image at(%d,%d).' %(row,col))我有两个不同的文件:1为图像和1为其他数据,我想所有在一个。
谢谢大家!

eit6fx6z

eit6fx6z1#

我不认为pandas支持你正在尝试做的事情,因为它只是用于数字数据。你需要的是xlsxwriter
pip install XlsxWriter

workbook = xlsxwriter.Workbook('my_xlsx_file.xlsx')
worksheet = workbook.add_worksheet()
worksheet.insert_image('B2', 'image.png')
workbook.close()

Reference
在保存方法中,如果必须使用excel:

import pandas as pd

def save(data):
    cols = ["header1", "header2", ...]
    writer = pd.read_excel("my_xlsx_file.xlsx", header=cols)
    df.to_excel(writer, sheet_name='Sheet1')
    writer.close()

Pandas excel reader,xlsx wirter

相关问题