【问题标题】:Python "Error 'dict' object has no attribute 'load'"Python“错误'dict'对象没有属性'load'”
【发布时间】:2014-07-15 12:09:26
【问题描述】:

我对 Python 有点陌生,我已经四处寻找这个,但基本上我正在制作的是一个 IRC 机器人。现在,给我带来问题的是我添加的 YouTube 提取命令。 以下是出处:

if text.find(':'+prefix+'yt') != -1:
    idb = text.split(':'+prefix+'yt')
    videoid = idb[1].strip()
    if len(videoid) == 11:
        try:
            url = 'http://gdata.youtube.com/feeds/api/videos/'+videoid+'?alt=json&v=2'
            json = json.load(urllib2.urlopen(url))
            title = json['entry']['title']['$t']
            author = json['entry']['author'][0]['name']['$t']
            irc.send('PRIVMSG '+home+' :'+str(title)+' | by '+str(author)+' | http://www.youtube.com/watch?v='+str(videoid)+' \r\n')
        except Exception, e:
            irc.send('PRIVMSG '+home+' :Could not look up video, check your ID. \r\n')
            print "Error",e
            pass
    else:
        irc.send('PRIVMSG '+home+' :Could not look up video, video ID must be at least 11 characters. \r\n');

发生的情况是,第一次尝试它就可以正常工作:

[14:57:23] <@Snowstormer> @yt Kwwl9jiJ1A4
[14:57:24] <GotBot> "Take Back the Night" - A Minecraft Original Music Video | by CaptainSparklez | http://www.youtube.com/watch?v=Kwwl9jiJ1A4

但是下一次是:

[14:57:27] <@Snowstormer> @yt Kwwl9jiJ1A4
[14:57:27] <GotBot> Could not look up video, check your ID.

仅当 ID 长度合适但不存在包含该 ID 的视频时才会显示。

在我添加异常之前,机器人直接断开了连接。在 CMD 行中显示:

Error 'dict' object has no attribute 'load'

我尝试谷歌搜索没有结果。我正在运行 Windows,因此不会应用 Unix 技巧(如果有的话,但我想我应该把它放在那里)。

我意识到这可能是一个本地化的问题,但我确实需要帮助。

【问题讨论】:

    标签: python json urllib2


    【解决方案1】:

    您将json.load 的结果存储在名为json 的变量中,从而有效地覆盖了模块json。这很可能不是您想要实现的。尝试重命名它。

    【讨论】:

    • 我最终遇到了同样的问题,我命名我的 var json 的原因是我在其他地方的示例中看到过它。在我创建 var 之后不再需要使用 json 库之前没有问题。需要更新这些示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2022-10-24
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多