Python split函数报'too many values to unpack (expected 2)'错误解决咨询
解决按等号拆分时保留含等号的值的问题
你的判断完全正确,就是token值里的第二个等号导致split("=")拆出了3个元素,没法直接解包成name和value两个变量。要保留token的原始值,只需要限制拆分次数,只拆分第一次出现的等号就行,具体改法如下:
修改后的代码:
ice = {} with open("file_name") as f: for line in f: line = line.strip() # 去掉行首尾的空白字符(包括换行符) if not line: # 跳过空行 continue # 只按第一个等号拆分,最多得到两个元素 name, value = line.split("=", 1) # 清理name和value的多余空格、引号 name = name.strip() value = value.strip().strip("'") ice[name] = value
关键说明:
split("=", 1):第二个参数1表示最多拆分1次,这样不管值里有多少个等号,都会被完整保留在value中。- 增加
line.strip()和空行判断,能避免空行或首尾空白带来的异常。 - 最后清理空格和单引号,能让结果更规整,比如处理后
ice['token']就是不带引号的纯token值。
用这段代码处理你给出的文件内容后,最终得到的ice字典会是:
{ 'token': 'RFRQLUFVVE8tSUNFOmdHdXBPcWxUU0lUNWpmZ0Q5cGk1ZllqVXk0aUFTN3g3S040asasEE=', 'version': 'DTP.6.8.353.0.LIVE-17' }
内容的提问来源于stack exchange,提问作者Rohit Kulkarni
相关产品推荐
相关产品推荐

