【问题标题】:NameError: name 'urllib' is not definedNameError:名称'urllib'未定义
【发布时间】:2019-11-30 09:52:29
【问题描述】:

大家好,现在我知道堆栈溢出有解决方案,我只是不明白,这是我的代码

enter code here
import urllib.request import urlopen

def read_text():
quotes = open(r"C:\Users\LEON\Desktop\python\Swear_words.txt")
contents_of_file = quotes.read()
print(contents_of_file)
quotes.close()
check_profanity(contents_of_file)


def check_profanity(text_to_check):
connection = 
urllib.urlopen("http://www.wdylike.appspot.com/q=s"+text_to_check)
output = connection.read()


read_text() 

错误 NameError: 名称 'urllib' 未定义

【问题讨论】:

  • 您的导入语句不包括urllib 本身。您将需要一个额外的导入语句。
  • 你能修正你的代码格式吗?您已经丢失了所有缩进,并且不清楚您是否在顶部有一个 import 行或两个错误地合并在一起。如果导入是 from urllib.request import urlopen,那么我认为 Klaus 已经确定了问题。
  • 要么import urllib 保留代码原样,要么将导入修复为from urllib.request ... 并将代码更改为简单的urlopen("...")。并修复代码格式

标签: python


【解决方案1】:

import 语句本身的语法不正确。它应该/可能是

from urllib.request import urlopen

那么最后第三行不需要urllib前缀

urlopen("http://www.wdylike.appspot.com/q=s"+text_to_check)

【讨论】:

  • 我试过了,只是这次我仍然收到错误“urllib.error.HTTPError: HTTP Error 400: Bad Request”
  • 我认为你需要在斜杠后加一个问号,你也可以为 Python 3.6 或更高版本重新格式化一点以使用 f-string urlopen(f"http://www.wdylike.appspot.com/?q=s{text_to_check}")
  • 好的。字符串中的某处必须有一些特殊字符正在被翻译。很高兴它对你有用。
猜你喜欢
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2021-04-15
  • 2019-01-26
  • 2021-10-05
  • 2017-08-16
  • 2019-08-18
相关资源
最近更新 更多