我在logging模块中看到了这样的代码%(asctime)s
%()s
的意思是什么,它和%s
有什么不同?
我只知道%s
表示“字符串”,但我在网上找不到关于%()s
的其他信息。
我在logging模块中看到了这样的代码%(asctime)s
%()s
的意思是什么,它和%s
有什么不同?
我只知道%s
表示“字符串”,但我在网上找不到关于%()s
的其他信息。
%(asctime)s
是日志记录模块用于获取'asctime'
属性的占位符,该属性属于LogRecord
对象。
记法'%(key)s'
用于标识映射中的键,并将其值插入格式化字符串中。例如,假设存在一个名为John的人,他身高168厘米,体重72公斤。
person = {'name': 'john', 'height': 168, 'weight': 72}
%()s
格式化字符串中),并在%
之后提供存储这些项的映射即可。>>> print('%(name)s, %(weight)s' % person)
john, 72
这种字符串格式化方法与str.format()
相似:
>>> print('{name}, {weight}'.format(**person))
john, 72
Formatter
对象,它本身并不进行转换,它所在的字符串才会进行转换。另外,文档链接指向了一个过时的版本。你可以查看修订历史记录来了解具体的更改内容。 - wjandrea%()s
格式化嵌套字典的方法,但无处可寻。有人知道是否可能吗?例如:test_dic = {'a': 1, 'b': {'c': 1}}
。如果我想要使用嵌套字典中键c
的值来格式化字符串,该怎么办?我尝试了类似于s_formatted = "Value of c is: %(b['c'])s % test_dic"
的东西,但没有成功...谢谢! - benmaqs_formatted = "Value of c is: %(b['c'])s % test_dic"
那么你需要将 % test dic
移出字符串。结果应该是 s_formatted = "Value of c is: %(b['c'])s" % test_dic
。 - Taylr Cawtetest_dic
(这是我的错误) - benmaq