带变量的嵌套Python字典

2024-10-02 04:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我要写这段代码:我试图创建一个脚本,从excel中提取数据并将其放到PowerPoint中。它应该检测选项卡颜色,以指示幻灯片上是否出现多个图表

到目前为止,数据似乎被适当地拉入了data dict变量,本应放在同一张幻灯片上的图表并不是全部拉入的,只有最后的图表数据最终会出现在slide dictionary中

slidecount = 0
for wksht in wb.sheetnames:
        combinecount = 1
        if tabcolor is not None:
            if tabcolor == most_recent_tabcolor:
                combinecount += 1
                slidecount -= 1
            else:
                combinecount = 1  # Resets to one
            most_recent_tabcolor = tabcolor
        else:
            combinecount = 1  # Resets to one

        '''
        Placed after combinecheck para place correctly in dictionary 
        '''
        infolist = [intended_chart, data_question, data_base, forcefloat, forcepercent]
        slide_data[slidecount] = {}
        slide_data[slidecount][combinecount] = {'Chart Data': data_dict, 'Chart Info': infolist}
        slidecount += 1

我期望得到以下结果: 0,{1:{'图表数据'…}2:{'图表数据'…}3:{'图表数据'…}}

我得到: 0,{3:{'图表数据'…}}


Tags: 数据inmostdatadictionaryif图表else
2条回答

只有当tab color不是none时,slidecount总是0。该变量没有增量,只是在tab color为none时递减

我想发表评论,但我没有足够的声誉这样做

所以问题是命令:

slide_data[slidecount] = {}

它删除了slidecount中的所有数据,但我需要有类似的东西才能真正地向嵌套字典中添加更多数据。我在wkshts的迭代之上创建了这个:

    dictcount = 0
    while dictcount <= len(wb.sheetnames):
        slide_data[dictcount] = {}
        dictcount += 1

这可能会创建一些空的字典条目,但我以后应该可以过滤掉它们

相关问题 更多 >

    热门问题