Python 以前的解决方案没有';t work:TypeError:';str';对象不可调用
我知道有类似的错误报告,但我检查了所有的在线解决方案,没有一个有效。所以我决定开一个新的帖子。 我在一个在线课程中运行以下代码。它应该可以工作,但是,在我的机器上运行时,它总是报告以下错误:Python 以前的解决方案没有';t work:TypeError:';str';对象不可调用,python,xml,urllib,Python,Xml,Urllib,我知道有类似的错误报告,但我检查了所有的在线解决方案,没有一个有效。所以我决定开一个新的帖子。 我在一个在线课程中运行以下代码。它应该可以工作,但是,在我的机器上运行时,它总是报告以下错误: ----> 7 input_str = input('Enter location: ') TypeError: 'str' object is not callable 下面是整个代码块: import urllib.request, urllib.parse, urllib.error
----> 7 input_str = input('Enter location: ')
TypeError: 'str' object is not callable
下面是整个代码块:
import urllib.request, urllib.parse, urllib.error
import xml.etree.ElementTree as ET
serviceurl = 'http://maps.googleapis.com/maps/api/geocode/xml?'
while True:
input_str = input('Enter location: ')
if len(input_str) < 1: break
url = serviceurl + urllib.parse.urlencode({'address': input_str})
print('Retrieving', url)
uh = urllib.request.urlopen(url)
data = uh.read()
print('Retrieved', len(data), 'characters')
print(data.decode())
tree = ET.fromstring(data)
results = tree.findall('result')
lat = results[0].find('geometry').find('location').find('lat').text
lng = results[0].find('geometry').find('location').find('lng').text
location = results[0].find('formatted_address').text
print('lat', lat, 'lng', lng)
print(location)
导入urllib.request、urllib.parse、urllib.error
将xml.etree.ElementTree作为ET导入
serviceurl=http://maps.googleapis.com/maps/api/geocode/xml?'
尽管如此:
input_str=input('输入位置:')
如果len(输入_str)<1:中断
url=serviceurl+urllib.parse.urlencode({'address':input_str})
打印('正在检索',url)
uh=urllib.request.urlopen(url)
data=uh.read()
打印('已检索',len(数据),'字符')
打印(data.decode())
tree=ET.fromstring(数据)
results=tree.findall('result')
lat=results[0]。查找('geometry')。查找('location')。查找('lat')。文本
lng=results[0]。查找('geometry')。查找('location')。查找('lng')。文本
位置=结果[0]。查找('formatted_address')。文本
打印('lat',lat',lng',lng)
打印(位置)
提前谢谢 您是否尝试重命名该变量?尝试类似于用户输入的方法,而不是输入。我很确定'str'在Python中是保留的,因此将其用作变量是行不通的。您尝试过重命名该变量吗?尝试类似于用户输入的方法,而不是输入。我很确定“str”在Python中是保留的,因此将其用作变量是行不通的。我看到您试图在“input\u str”中放入字符串。你已经试过了吗
input_str = raw_input('Enter location: ')
这种类型的方法接收字符串作为输入。方法“input”的输入必须是数字
问候 我看到您试图在“input_str”中输入字符串。你已经试过了吗
input_str = raw_input('Enter location: ')
这种类型的方法接收字符串作为输入。方法“input”的输入必须是数字
问候 通过执行如下操作,将内置函数
input
重新定义为代码中某个字符串(不一定在发布的代码片段中):
只有一种方法可以修复此错误:关闭Python解释器并重新启动它。确保您执行的任何代码都不包含对
input
的赋值,也不包含指向内置函数的任何其他标识符。通过执行以下操作,将内置函数input
重新定义为代码中某个字符串(不一定在发布的代码片段中):
只有一种方法可以修复此错误:关闭Python解释器并重新启动它。确保您执行的任何代码都不包含对
input
的赋值,也不包含指向内置函数的任何其他标识符。您是否在代码中对input
进行赋值?可能的重复我无法用您发布的代码重现错误。然而,Python会很高兴地让您覆盖内置的input='explode my program'
,然后当您尝试将input作为函数调用时,您将得到您发布的错误。检查链接的副本。type(input)
显示什么?@DyZ它显示“str”。您的代码中是否分配了input
?我无法用您发布的代码重现错误的可能副本。然而,Python会很高兴地让您覆盖内置的input='explode my program'
,然后当您尝试将input作为函数调用时,您将得到您发布的错误。检查链接的副本。type(input)
show是什么?@DyZ它显示'str'。是的,我尝试过其他名称,如'people','address',但它们都不起作用。在将其作为答案发布之前,你真的尝试过吗?@CathyQian,这是针对安德鲁·格拉斯的。通常我们希望人们给出权威性的答案,猜测并不是一个好答案。你说得对@JaredSmith,我的错。我是新来的。谢谢你的反馈。是的,我试过其他名字,比如“人”、“地址”,但它们都不起作用。你真的试过了吗?在把它作为答案发布之前?@CathyQian,这是针对安德鲁·格拉斯的。通常我们希望人们给出权威性的答案,猜测并不是一个好答案。你说得对@JaredSmith,我的错。我是新来的。感谢您的反馈。Python3没有原始输入。是的。但2.7确实如此。这就是为什么我说Python3没有原始输入。是的。但2.7确实如此。这就是我为什么这么说的原因谢谢!我确实意识到,在我以前的代码中,我有一个名为“input”的参数作为字符串类型。我用的是Jupyter笔记本,所以我把它关闭,然后重新打开。问题解决了!谢谢!谢谢我确实意识到,在我以前的代码中,我有一个名为“input”的参数作为字符串类型。我用的是Jupyter笔记本,所以我把它关闭,然后重新打开。问题解决了!谢谢!