相关疑难解决方法(0)

错误:"'dict'对象没有属性'iteritems'"

我正在尝试使用NetworkX读取一个Shapefile并使用该函数write_shp()生成将包含节点和边缘的Shapefile(在此示例之后 < - 此链接现在已经死了),但是当我尝试运行它给出的代码时我有以下错误:

Traceback (most recent call last):   File
"C:/Users/Felipe/PycharmProjects/untitled/asdf.py", line 4, in
<module>
    nx.write_shp(redVial, "shapefiles")   File "C:\Python34\lib\site-packages\networkx\readwrite\nx_shp.py", line
192, in write_shp
    for key, data in e[2].iteritems(): AttributeError: 'dict' object has no attribute 'iteritems'
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3.4并通过pip install安装NetworkX.

这个错误之前,它已经给了我另外一个说:"x范围不存在"或类似的东西,所以我看着它,只是改变xrange以range在nx_shp.py文件,这似乎解决它.

根据我的阅读,它可能与Python版本(Python2与Python3)有关.

python dictionary

370
推荐指数
4
解决办法
34万
查看次数

什么时候应该使用iteritems()而不是items()?

是否合法使用items()而不是iteritems()在所有地方使用?为什么iteritems()从Python 3 中删除?看起来像一个了不起的有用的方法.背后的原因是什么?

编辑:为了澄清,我想知道以类似生成器的方式迭代字典的正确习惯用法(一次一个项目,而不是全部到内存中)以与Python 2和Python 3兼容的方式进行迭代?

python python-3.x

143
推荐指数
7
解决办法
20万
查看次数

setattr与kwargs,pythonic或不?

我__init__()在一些具有许多参数(最多20个)的SQLAlchemy ORM类中使用这样的东西.

def __init__(self, **kwargs):
    for k, v in kwargs.iteritems():
        setattr(self, k, v)
Run Code Online (Sandbox Code Playgroud)

设置这样的属性是"pythonic"吗?

python initialization

18
推荐指数
2
解决办法
5322
查看次数

标签 统计

python ×3

dictionary ×1

initialization ×1

python-3.x ×1