云溪· 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 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上