所以这几乎是一个网络报废程序。我觉得好像差不多完了,但我不知道如何解决这个问题!
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)
编辑:我已经缩短了代码。遗憾!
答案 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