Python-数据库数据通过csv导入导出

本文介绍了一种将数据库中的数据导出到CSV文件,并将CSV数据导入更新数据库的方法。使用Python的csv模块和Django ORM实现数据的读写,适用于数据迁移或备份场景。

数据从数据库中写入csv

data_list = TaobaoItem.objects.all()
filename = 'item.csv'
with open(filename, 'w', encoding='utf-8-sig') as f:  # 'utf-8-sig'防止中文乱码
    csv_writer = csv.writer(f)
    csv_writer.writerow(['id', '目标店铺id', '商品id', '商品名', '商品描述', '商品轮播图', '商品详情图', '商品状态', '状态备注'])
    for data in data_list:
        csv_writer.writerow([data.id, data.shop_id, str(data.item_id), data.title, data.desc, data.banner_images, data.detail_images, data.status, data.note])

从csv读取数据更新数据库

with open('item.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        if reader.line_num == 1:  # 去除表头
            continue
        defaults = {
            'shop_id': row[1],
            'title': row[3],
            'desc': row[4],
            'banner_images': row[5],
            'detail_images': row[6],
            'status': row[7],
            'note': row[8]
        }
        filter_kwargs = {
            'item_id': row[2],
        }
        TaobaoItem.objects.update_or_create(defaults=defaults, **filter_kwargs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值