ValueError:解压缩的值太多(Python)

时间:2014-11-06 18:33:10

标签: python dictionary web-scraping

所以这几乎是一个网络报废程序。我觉得好像差不多完了,但我不知道如何解决这个问题!

Traceback (most recent call last):
  File "AgriMet4.py", line 424, in <module>
    orig_column = convert(station, webpage, data_type)
  File "AgriMet4.py", line 244, in convert
    ag_date, ag_time, ag_data_str = line.split()
ValueError: too many values to unpack

以下是标记的部分:

     # Break line into components
        ag_date, ag_time, ag_data_str = line.split()
        ag_datetime = ag_date + " " + ag_time
        ag_datetime = datetime.datetime.strptime(ag_datetime, "%m/%d/%Y %H:%M")
        ag_data = float(ag_data_str)

columns = []
for data_type in data_types:
    webpage = download(station, data_type, effective_begin_date, effective_end_date)
    orig_column = convert(station, webpage, data_type)
    std_column = fill_gaps(orig_column, interval, data_type,
                           effective_begin_date, effective_end_date)
    adjusted_column = adjust_datetimes(station, time_zone_offset, std_column)
    columns.append(adjusted_column)
编辑:我已经缩短了代码。遗憾!

2 个答案:

答案 0 :(得分:0)

如错误所示,等式右边的值太多(line.split())。

您可以找到documentation进行字符串拆分。您似乎要分配超过3个值。如果您不知道将获得多少值,则可以使用*语法保存任何剩余值。

line = "Hello there world"
word1, *remaining_words = line.split()

答案 1 :(得分:0)

我已经发现了我的问题!

我的下载定义包含不正确的data_types,这导致它一次收集所有六七种数据类型,而不是一次收集一次。

def download(station, data_types, begin_date, end_date):

    query_string = ('station=' + station
        + '&year='  + str(begin_date.year)
        + '&month=' + str(begin_date.month)
        + '&day='   + str(begin_date.day)
        + '&year='  + str(end_date.year)
        + '&month=' + str(end_date.month)
        + '&day='   + str(end_date.day)
        + '&pcode=' + data_types)
    url = AGRIMET_WEBSITE + '?' + query_string