首页 > 解决方案 > 将生成器对象转换为列表时出现错误“要解压的值太多”

问题描述

我正在使用 rasterio 示例模块,我想将我的输出(生成器)转换为列表。我知道我可以只使用 list() 但它会引发错误“解包的值太多(预期为 2)”。当我只使用示例模块时,我得到了生成器:

sample = rasterio.sample.sample_gen(raster, ['754707','4248548'])

但试图列出一个清单:

sample = list(rasterio.sample.sample_gen(raster, ['754707','4248548']))

引发错误。我找到了 .items() 方法,但它适用于字典,它对生成器没有用,我第一次使用生成器对象,但我不明白有什么问题。

标签: pythonlistgeneratorrasterrasterio

解决方案


尝试:

sample = list(rasterio.sample.sample_gen(raster, [('754707','4248548')]))

在您的示例中,列表中的字符串是Sequence-like 且可迭代的,因此在解压缩它们时,它们会得到 6 个值,并且需要两个值。这些字符串可能需要是intor float,但我不确定


推荐阅读