TypeError:在字符串格式化过程中并非所有参数都已转换-Python

TypeError:在字符串格式化过程中并非所有参数都已转换-Python,python,Python,我正在尝试学习Python,并正在学习一些示例——这一个是提取简单的天气数据。我在运行脚本时遇到了一个错误,我似乎无法找到…primary的答案,因为我不确定如何询问它,所以下面是: 我的代码来自于书中 和我的控制台错误 如果我从url路径中删除%location,console将打印位置以外的数据,在本例中为圣地亚哥 我知道这是一个有点琐碎的问题,如果我对Python有更多的了解,回答起来会很容易,但是现在,在两个小时的混乱之后,我非常想知道到底发生了什么 感谢您的帮助。字符串格式设置功能使用

我正在尝试学习Python,并正在学习一些示例——这一个是提取简单的天气数据。我在运行脚本时遇到了一个错误,我似乎无法找到…primary的答案,因为我不确定如何询问它,所以下面是:

我的代码来自于书中

和我的控制台错误

如果我从url路径中删除%location,console将打印位置以外的数据,在本例中为圣地亚哥

我知道这是一个有点琐碎的问题,如果我对Python有更多的了解,回答起来会很容易,但是现在,在两个小时的混乱之后,我非常想知道到底发生了什么

感谢您的帮助。

字符串格式设置功能使用占位符;插值的每个值将替换其中一个占位符。字符串中没有包含任何占位符,因此Python无法知道将location的值放在何处

如果您想创建一个国家,您需要包括一个q=place,country参数。使用%s占位符,您链接到的页面正是这样做的:

url ='http://api.openweathermap.org/data/2.5/forecast/daily?q=%s&cnt=3' % (location)

此处,位置字符串值插入到URL中的%s位置。

因此,位置应插入字符串中的何处?您缺少%s占位符。%字符串格式的工作方式是,对于元组中的每个值,字符串中都必须有一个%x占位符。%位于第一个print语句中……这本书对初学者来说有点过时,因为它甚至没有提到需要API键,但这是我的APIKEY的完整字符串,我可以稍后重置-该位置应该可以获取城市名称…只需将其粘贴到您的浏览器中……啊……我想我明白了……让我快速进行实验,我会让您知道的。非常感谢。
rooster@python_tests $ python3 quickWeather.py
Traceback (most recent call last):
  File "quickWeather.py", line 16, in <module>
    url = 'http://api.openweathermap.org/data/2.5/forecast/city?id=5391811&APPID=5103aa7d5415db6xxxxxxxxxxxxxxxx' %(location)
TypeError: not all arguments converted during string formatting
url ='http://api.openweathermap.org/data/2.5/forecast/daily?q=%s&cnt=3' % (location)