首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GAE AttributeError

GAE AttributeError
EN

Stack Overflow用户
提问于 2010-03-22 22:44:34
回答 2查看 732关注 0票数 2

我的GAE应用程序在我的电脑上运行得很好,但当我上传它时,我开始得到一个AttributeError,特别是:

代码语言:javascript
运行
复制
AttributeError: 'dict' object has no attribute 'item'

我使用的是pylast接口(last.fm--link的一个API )。具体地说,我访问的是这种类型的变量列表:

代码语言:javascript
运行
复制
SimilarItem = _namedtuple("SimilarItem", ["item", "match"])

我有一个这种类型的变量,名为sim,当我得到属性错误时,我正在尝试访问sim.item

我应该注意到,我在我的计算机上使用的是Python2.6,并且我知道GAE运行在Python2.5上。这会有什么不同吗?我认为它们是向后兼容的。

最后,我认为这可能是pylast导入的模块的问题--也许它们不能与GAE或其他什么一起工作?我做了一些研究,但没有得到任何结果。以下是导入:

代码语言:javascript
运行
复制
import hashlib
import httplib
import urllib
import threading
from xml.dom import minidom
import xml.dom
import time
import shelve
import tempfile
import sys
import htmlentitydefs

在这个令人沮丧的问题上,如果有任何帮助,我将不胜感激。提前谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2010-03-22 22:58:14

Python2.5没有namedtuple。它是在2.6中添加的。

Python:看起来_namedtuple函数是由pylast提供的,它将在Python2.5或更早的版本中使用真正的namedtuple,但在Python2.5或更早的版本中将后退到普通的老式dict。这意味着在生产环境中运行时必须使用sim['item']sim.get('item')

下面是该函数的源代码:

代码语言:javascript
运行
复制
def _namedtuple(name, children):
    """
        collections.namedtuple is available in (python >= 2.6)
    """

    v = sys.version_info
    if v[1] >= 6 and v[0] < 3:
        return collections.namedtuple(name, children)
    else:
        def fancydict(*args):
            d = {}
            i = 0
            for child in children:
                d[child.strip()] = args[i]
                i += 1
            return d

        return fancydict
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2493072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档