我知道有类似的错误已被报道,但我检查了所有在线解决方案,但没有一个有效。所以我决定开一个新帖子。 我从在线课程运行以下代码。它可以工作,但是,它在我的机器上运行时总是报告以下错误:
----> 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)
提前致谢!
答案 0 :(得分:3)
您通过执行这样的,将内置函数input
重新定义为代码中的某个字符串 (不一定在已发布的代码片段中) :
input = ....
只有一种方法可以解决此错误:关闭Python解释器并重新启动它。确保您执行的任何代码不包含input
的赋值或任何其他引用内置函数的标识符。
答案 1 :(得分:-4)
您是否尝试重命名变量?而不是input_str,尝试类似user_input。我非常确定'str'是在Python中保留的,所以将它用作变量是行不通的。
答案 2 :(得分:-4)
我看到你试图在“input_str”中输入一个字符串。你有没试过?:
input_str = raw_input('Enter location: ')
此类方法接收字符串作为输入。方法“input”的输入必须是数字
问候!