python - 如何修复无法在python中解包不可迭代的错误
问题描述
我有以下代码:
import netCDF4
from netCDF4 import Dataset
import numpy as np
import sys
import time
import calendar
import datetime as dt
import pandas as pd
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
def print_var_recursively(grp):
for varname in list(grp.variables.keys()):
var=grp.variables[varname]
dims=var.dimensions
if not ('scanline' in dims and 'ground_pixel' in dims and 'time' in dims):
continue
if 'corner' in dims or varname=='time_utc':
continue
print(dims['time'])
print(varname,dims)
print(var)
def ncdump(nc_fid, verb=True):
'''
ncdump outputs dimensions, variables and their attribute information.
The information is similar to that of NCAR's ncdump utility.
ncdump requires a valid instance of Dataset.
Parameters
----------
nc_fid : netCDF4.Dataset
A netCDF4 dateset object
verb : Boolean
whether or not nc_attrs, nc_dims, and nc_vars are printed
Returns
-------
nc_attrs : list
A Python list of the NetCDF file global attributes
nc_dims : list
A Python list of the NetCDF file dimensions
nc_vars : list
A Python list of the NetCDF file variables
'''
def print_ncattr(key):
"""
Prints the NetCDF file attributes for a given key
Parameters
----------
key : unicode
a valid netCDF4.Dataset.variables key
"""
#=====================================================
try:
fileList=open('fileList.txt','r')
except:
print('Did not find a text file containing file names (perhaps name does not mathc)')
sys.exit()
else:
for FILE_NAME in fileList:
FILE_NAME=FILE_NAME.strip()
user_input=input('\nWould you like to process\n'+FILE_NAME+'\n\n(Y/N)')
if(user_input=='N' or user_input=='n'):
print('Skipping...')
continue
else:
nc_file=Dataset(FILE_NAME,'r')
nc_attrs,nc_dims,nc_vars=ncdump(nc_file)
print_var_recursively(nc_file.groups['PRODUCT'])
nc_file.close()
#=====================================================
如果我运行代码,我会收到消息:
'TypeError: cannot unpack non-iterable NoneType object'
任何人都可以启发我吗?
解决方案
这与ncdump
功能有关。它不会返回任何东西(因此是“none”),但是您正在尝试解压它。自然,您无法打开“无”的包装。
推荐阅读
- javascript - Javascript 中的 Base64
- javascript - $.post 返回 net::ERR_EMPTY_RESPONSE
- azure - 在 Azure Data Lake Gen1 中复制文件/文件夹
- python - filedialog.askopenfilename() 在第二次执行整个代码时需要更长的时间来执行
- rust - 如何通过 FFI 公开编译时生成的静态 C 字符串?
- python - 树莓派 BeautifulSoup 库不工作
- scala - 如何避免在scala中返回
- postsharp - 冻结反序列化 NotifyPropertyChanged 方面
- android - OnActivity 在同一个活动中执行两次
- database - 为什么MongoDB不自己制作数据文件夹?