Python PyCharm警告:“;格式不';不需要映射;。这是什么意思?

Python PyCharm警告:“;格式不';不需要映射;。这是什么意思?,python,pycharm,Python,Pycharm,出于某种原因,PyCharm警告我这行代码。我只是记录字典的内容,并得到一个警告:格式不需要映射 代码运行得很好,并不重要,但我得到了很多这样的代码,我不明白PyCharm想告诉我什么 我在谷歌上搜索了一下,但没有发现任何有用的东西。我假设PyCharm会警告您,在提供字典作为格式化参数时,使用了一个简单的格式字符串,其中只有一个%s。当使用命名格式时(我相信使用%(name)s),可以使用字典参数用参数['name']的值填充该格式 为了避免警告,您可以尝试将参数强制为简单字符串,并与字符串中

出于某种原因,PyCharm警告我这行代码。我只是记录字典的内容,并得到一个警告:格式不需要映射

代码运行得很好,并不重要,但我得到了很多这样的代码,我不明白PyCharm想告诉我什么


我在谷歌上搜索了一下,但没有发现任何有用的东西。

我假设PyCharm会警告您,在提供字典作为格式化参数时,使用了一个简单的格式字符串,其中只有一个
%s
。当使用命名格式时(我相信使用
%(name)s
),可以使用字典参数用
参数['name']
的值填充该格式

为了避免警告,您可以尝试将参数强制为简单字符串,并与字符串中的格式和您提供的参数相匹配:

self._logger.info('Device channels set: %s' % str(self._device_channels))

我假设PyCharm警告您使用一个简单的格式字符串,其中只包含一个
%s
,同时提供一个字典作为格式化参数。当使用命名格式时(我相信使用
%(name)s
),可以使用字典参数用
参数['name']
的值填充该格式

为了避免警告,您可以尝试将参数强制为简单字符串,并与字符串中的格式和您提供的参数相匹配:

self._logger.info('Device channels set: %s' % str(self._device_channels))

也许你的
自我。_设备\u频道
是一个
映射
类型,并且
'%s'
这个
字符串格式
需要str

因此,它将
转换
映射
类型为
str
类型。并给您一个
警告


您可以使用
str(self.\u device\u channels)

转换变量,可能您的
self.\u device\u channels
是一种
map
类型,并且
'%s'
字符串格式需要str

因此,它将
转换
映射
类型为
str
类型。并给您一个
警告


您可以使用
str(self.\u device\u channels)

转换变量。请注意,在新代码中推荐
str.format()
优于
%
,因为它更强大,可读性更强。感谢您的提示。使用.format()可删除警告。我将开始使用它,因为它在Python 3中显然是标准的。请注意,在新代码中推荐
str.format()
而不是
%
,因为它更强大,可读性更强。谢谢您的提示。使用.format()可删除警告。我将开始使用它,因为它在Python 3中显然是标准的。谢谢!调用str()将删除警告。使用新的.format()格式也是如此。谢谢!调用str()将删除警告。使用新的.format()格式也是如此。