我在编写正确的代码以使字符串拆分为字典时遇到了麻烦。我尝试过以下方法:
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,
打印时。
现在,我需要将此字符串分隔为字典,以便我可以从字典中获取变量和值来创建饼图。
答案 0 :(得分:-1)
我认为问题是mainmain
字符串中的最后一个逗号。试着像这样剥离它:
maindict = dict(item.split(':') for item in mainmain.strip(',').split(','))