云溪· 2022-04-04 01:50 采纳率: 75%
浏览 63
已结题

定义一个方法,保存多个字典到csv中

如何定义一个方法将多个字典保存到csv中:
其中:
1、字典的值数量是随机的,
2、字典值的规律是:第一个数是最低价1,第二个是最高价1,第三个是最低价2,第四个是最高价2,第五个是最低价3依次类推(不知道最多可能出现几个)
3、当他的值为 “ ” 的时候,则默认填null

data_dict = {             # 这个是其中一个字典的例子
    'RainRider 男士雨衣防水透气雨具耐用牛津防雨夹克外套和裤子': ['¥454.23', '', '¥450.01', '', '¥449.11', '', '¥450.77', '', '¥455.57', ''],
     '雨衣(夹克 + 裤子),EVA 超轻防水防护雨衣防雨装备工作服适合男士女士': ['¥277.97', ''],
     'Remelon 2 件套女式西装外套带裤子深 V 长袖修身荷叶边裙子 商务西装': ['¥368.37', '', '¥367.61', '', '¥369.72', '', '¥368.18', '', '¥348.09', '', '¥368.37', '', '¥365.17', '', '¥349.76', '', '¥367.22', '', '¥366.01', '', '¥369.33', '', '¥369.97', '', '¥376.56', '', '¥376.43', '', '¥377.65', ''],
     'Amazing Supply 一次性*裤防水白色裤子PPE 工作服。': ['¥233.00', '', '¥292.18', '', '¥305.61', '', '¥328.32', ''],
     '女式性感 2 件套商务服装 V 领短袖褶皱下摆荷叶边上衣裤子套装': ['¥347.90', '', '¥347.20', '', '¥347.20', '', '¥347.20', '', '¥347.13', '', '¥343.81', ''],
     'Cutter & Buck 男式裤子': ['¥372.34', '', '¥454.23', ''], 'Le Suit 女式娇小弹力绉纱单扣青果领长裤套装': ['¥1,279.52', ''],
     'Snickers Snickers Hose': ['¥583.76', '', '¥612.64', '', '¥573.38', '', '¥693.09', '', '¥612.64', ''],
     'Mascot 12355-630-09-82C50 裤子 Biloxi 尺码 L82cm/C50 黑色': ['¥361.44', ''],
     'Snickers 士力克斯 321118120 裤子,带皮套袋 CoolTwill 尺寸 120 灰色': ['¥730.15', ''],
     'Mascot 03179-010-09-82C43 裤子 Cadiz 尺寸 L82cm/C43黑色': ['¥500.90', ''],
     'Ultra-Lite 雨衣带裤子男式女式防水防雨服,适合运动(*蓝,L 码)': ['¥275.35', ''],
     '防雨服重型 PVC 工作服男式防雨装备*夹克和裤子雨衣': ['¥393.58', '', '¥391.79', ''],
     '男式女式雨衣防水重型钓鱼防雨装备夹克和裤子': ['¥652.36', '', '¥656.14', ''],
     'Kelendle 电锯围裙裤子锁骨防水除草围裙带口袋和反光条纹开叉护腿修剪器*锁适用于除草刷切割器花园工作围裙围嘴 50 英寸(约 127 厘米)长': ['¥236.07', '']
     }

例子:

img

目标输出结果展示:

img

  • 写回答

5条回答 默认 最新

  • chuifengde 2022-04-04 13:43
    关注
    import csv
    
    dic1 = {'a':['1','','2','','4'],
            'b': ['1', '4', '2', '', '8','2','5','6']}
    dic2 = {'f':['4','2','2','5','4'],
            'g': ['1', '4', '2', '', '4']}
    dic1.update(dic2)
    ml = max(dic1.values(), key=lambda x: len(x),)
    header = ['name']
    for i in range(1, len(ml) //2+1):
        header.extend([f'最低价{i}', f'最高价{i}'])
    ldd = [[k] + v + [''] * (len(ml) - len(v)) for k, v in dic1.items()]
    with open("test.csv",'w',newline='', encoding='utf-8') as f:
        wri = csv.writer(f, quoting=csv.QUOTE_MINIMAL)
        wri.writerow(header)
        wri.writerows(ldd)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 已采纳回答 4月4日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用