无法将排序后的字符串放入字典中以创建饼图

时间:2017-10-18 13:09:39

标签: python dictionary pie-chart

我在编写正确的代码以使字符串拆分为字典时遇到了麻烦。我尝试过以下方法:

maindict = dict(item.split(":") for item in mainmain.split(","))
print maindict

但是,我有以下错误说明

  

" ValueError:字典更新序列元素#1的长度为1; 2是必需的"。

以下是我的代码片段。

首先,用户将通过文件资源管理器输入他们的文件,并将调用此Category()函数并读取文件。从CSV中,将对单词的频率进行计数并将其放入要显示的字符串中。

def category(x):

    readCSV = csv.DictReader(open(filename, 'rb'))

    dict_list = []

    for read in readCSV:
        dict_list.append(read)

    for item in dict_list:
        rowRequest = item["Order Group"].title() 
        string = rowRequest.replace('-', ' ').strip()
        if str(string):
            count = frequencyReq.get(string, 0)
            frequencyReq[string] = count + 1

    freqSort = sorted(frequencyReq.iteritems())
    Maintainence = ""

    num_maintainence = 0

    for item, freqCom in freqSort:
        main = ['Acmv', 'Air', 'Audio', 'Elec', 'Lift', 'Light']

        if any(word in item for word in main):
            num_maintainence += freqCom
            Maintainence += "%s:%d, " % (item, freqCom)
            Mainit = "%s" % num_maintainence
            mainmain = "%s" % Maintainence

            maindict = dict(item.split(":") for item in mainmain.split(", "))
            print maindict

从主域,我得到了我想要的字符串

Acmv:2, Air Conditioning:50, Audio Video Equipment:1, Electrical:22, Lift:60, Lighting:118,  

打印时。

现在,我需要将此字符串分隔为字典,以便我可以从字典中获取变量和值来创建饼图。

1 个答案:

答案 0 :(得分:-1)

我认为问题是mainmain字符串中的最后一个逗号。试着像这样剥离它:

maindict = dict(item.split(':') for item in mainmain.strip(',').split(','))