'module'对象在pymongo中没有属性'OrderedDict'错误

Shi*_*ade 2 python collections runtime-error mongodb pymongo

我对pymongo很新.在以下代码中,

db = MySQLdb.connect(DB_HOST,DB_USR,DB_PWD,DB_NAME)
cursor = db.cursor()
query = "SELECT * FROM %s WHERE userid = \"%s\"" % (table, userID) 
cursor.execute(query)
colNames = [i[0] for i in cursor.description]
rows = cursor.fetchall()
objects_list = []
# The below logic makes JSON objet based on fetch MySQL rows.
for row in rows:
    d = collections.OrderedDict()
    index = 0
    for col in colNames:
        d[col] = row[index]
        index = index + 1
    objects_list.append(d)
return objects_list
Run Code Online (Sandbox Code Playgroud)

我收到了错误,

trngl_advertise_perfm
trngl_advertise_activity
trngl_user_fblike
Traceback (most recent call last):
File "IngestDataToMongo.py", line 83, in <module>
userData = getData(user[0], TABLES[i]) # Get data of each user.
File "IngestDataToMongo.py", line 51, in getData
d = collections.OrderedDict()
AttributeError: 'module' object has no attribute 'OrderedDict'
Run Code Online (Sandbox Code Playgroud)

请告诉我,如何删除错误.

Mar*_*ers 11

您正在使用Python 2.6或更早版本.OrderedDict在版本2.7之前没有添加到Python.

文档:

版本2.7中的新功能.

你可以使用这个backport(也可以从PyPI获得),它可以在python版本2.4及更高版本上运行,或者安装python 2.7并使用该版本运行你的脚本.

  • @MartijnPieters现在,问题是我无法安装python2.7,因为我在服务器上使用putty运行脚本我无法改变的东西.那么我可以导入任何文件或代码,以便它可以工作,或者在较旧的python版本中有任何OrderdDict选项吗? (2认同)