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笔记本,所以我把它关闭,然后重新打开。问题解决了!谢谢!