如何解决-ValueError:在Python中解包的值太多

如何解决-ValueError:在Python中解包的值太多,python,Python,将首先调用“get_summary_csv”函数,该函数调用函数“methodname”并返回两个输出。我已经处理了一个错误。如果输出列表中没有数据,请返回错误消息。当没有数据时,我得到的不是错误消息,而是错误 def methodname(): csv_summary_list = [] header = [ 'Client ID', 'Client Name', 'Project ID', 'Project N

将首先调用“get_summary_csv”函数,该函数调用函数“methodname”并返回两个输出。我已经处理了一个错误。如果输出列表中没有数据,请返回错误消息。当没有数据时,我得到的不是错误消息,而是错误

def methodname():

    csv_summary_list = []
    header = [
        'Client ID',
        'Client Name',
        'Project ID',
        'Project Name']

    csv_summary_list.append(header)

    count = 0
    for result in csv_summary_list:
        count = count + 1

    # if there is no billing data available

    if count is 1:
        return {'message': 'No data available'}
    else:
        ID = int(csv_summary_list[1][0])

        return (csv_summary_list, ID)


def get_summary_csv():

    #Calling the mathodname() function
    (csv_summary_list, ID) = methodname()
    #Getting error here - ValueError: too many values to unpack 

    #Passing the output to call another function
    response = download_csv_summary(ID, csv_summary_list) 

    return response
这里
(csv\u summary\u list,ID)=methodname()
告诉Python调用
methodname
需要两个值。但是,当
如果计数为1
时,函数仅返回一个值,dict
{'message':'No data available'}
:

t = (1, 2)
a, b = t # a = 1, b = 2
t = {'this': 'breaks'}
a, b = t # raises ValueError
尝试以元组形式返回错误消息:

...
if count is 1:
    return ('message', 'No data available')
else:
    ID = int(csv_summary_list[1][0])

    return (csv_summary_list, ID)
...
csv_summary_list, ID = methodname()
# if count is 1
# csv_summary_list = 'message'
# ID = 'No data available'

在这个网站上,快速搜索显示了900多个带有短语“太多的值无法解包”的问题。在问这个问题之前,你看过其中任何一个吗?是的。我已经找过了。但是我还没有得到相关的答案错误发生在哪一行?(csv_summary_list,ID)=methodname()#在这里获取错误-ValueError:太多的值无法解包谢谢!!我将尝试在返回错误时引发错误并停止函数{'message':'No data available'}并且不继续下一步我不完全理解您的问题:您是想
引发消息
'No data available'
的异常,还是想
返回dict
{'message':'No data available'}
。如果没有捕获到异常,将停止执行,并且下一步将不会运行。