2024-09-26 18:15:35 发布
网友
当试图将{r[Name]}重新格式化为大写时(原来是titlecase:James)
{r[Name]}
James
string = 'text {r[Name]} data'.format(r=row)
我得到回溯:AttributeError: 'str' object has no attribute 'uppercase'
AttributeError: 'str' object has no attribute 'uppercase'
有什么想法吗?非常感谢
这是因为字符串没有一个名为uppercase的方法,正如错误消息所说。在
uppercase
你可能想要^{}。在
但是,实际上不能用这种方式调用格式字符串中的方法。您可以访问upper属性(只删除parens),但之后您将得到类似于'text <built-in method upper of str object at 0x12345678> data'的内容,这并不是很有帮助。在
upper
'text <built-in method upper of str object at 0x12345678> data'
那么,你是怎么做到的?你不需要。format被有意限制,以使意外运行任意不受信任的代码变得更加困难。如果你认为你需要一个函数调用,那通常表明你太花哨了,应该显式地创建一个中间值。例如:
format
string = 'text {name} data'.format(name=row['Name'].upper())
这是因为字符串没有一个名为
uppercase
的方法,正如错误消息所说。在你可能想要^{} 。在
但是,实际上不能用这种方式调用格式字符串中的方法。您可以访问
upper
属性(只删除parens),但之后您将得到类似于'text <built-in method upper of str object at 0x12345678> data'
的内容,这并不是很有帮助。在那么,你是怎么做到的?你不需要。
format
被有意限制,以使意外运行任意不受信任的代码变得更加困难。如果你认为你需要一个函数调用,那通常表明你太花哨了,应该显式地创建一个中间值。例如:相关问题 更多 >
编程相关推荐