pyshortener错误难以辨认,

时间:2016-04-08 12:27:47

标签: python

我在这里犯了这个错误?对我来说,它真的是隐藏的,不明白

我的代码:

import tweepy
import random
import time
from random import shuffle
from pyshorteners.shorteners import Shortener
from bs4 import BeautifulSoup as bs4
import requests


def shortenerUrl(url):
myUrl = url
shortUrlSystem = Shortener('Osdb')
urlReturned = format(shortener.short(myUrl))
return urlReturned


i = random.randint(1, 144)
articleExtractor(i)
for i in listaCompleta:
    api.update_status(status=i)
    time.sleep(random.randint(247, 383))

我的错误:

Traceback (most recent call last):
File "mTArt.py", line 73, in <module>
articleExtractor(i)
File "mTArt.py", line 67, in articleExtractor
urlCorta = shortenerUrl(job_url)
File "mTArt.py", line 37, in shortenerUrl
urlReturned = format(shortener.short(myUrl))
NameError: name 'shortener' is not defined
那么裁决是什么?

1 个答案:

答案 0 :(得分:1)

shortener未在代码中的任何位置定义。

您可能希望使用shortUrlSystem定义了错误的行上方的行。

你应该写:

urlReturned = format(shortUrlSystem.short(myUrl))

长答案

在您的代码中,您尝试在名为short的内容上调用方法shortener

urlReturned = format(shortUrlSystem.short(myUrl))

现在,python只知道您导入的内容以及定义的内容。

您从模块Shortener 导入 pyshorteners.shorteners但是python区分大小写,因此shortener不是Shortener

定义的之一是shortUrlSystem,因此python知道它并将其定义为Shortener对象,恰好有short方法(这意味着你可以在其上调用short

现在看一下我看到的文档中的示例

url = 'http://www.google.com'
shortener = Shortener('Osdb')
print "My short url is {}".format(shortener.short(url))

此处作者 shortener定义为Shortener对象,因此命令shortener.short有效。但是在您的代码中,由于shortener未定义,shortener.short无效,您可以从发布的错误中看到:

NameError: name 'shortener' is not defined