尝试重新格式化{r[Name]}
为大写时(最初是 titlecase: James
)
原始代码
string = 'text {r[Name]} data'.format(r=row)
试图
string = 'text {r[Name].uppercase()} data'.format(r=row)
我得到了追溯:AttributeError: 'str' object has no attribute 'uppercase'
有任何想法吗?非常感谢
尝试重新格式化{r[Name]}
为大写时(最初是 titlecase: James
)
string = 'text {r[Name]} data'.format(r=row)
string = 'text {r[Name].uppercase()} data'.format(r=row)
我得到了追溯:AttributeError: 'str' object has no attribute 'uppercase'
有任何想法吗?非常感谢
这是因为字符串没有名为 的方法uppercase
,正如错误消息所说的那样。
你可能想要upper
.
但是,您实际上不能以这种方式调用格式字符串中的方法。您可以访问该upper
属性(只需删除括号),但随后您会得到类似的东西'text <built-in method upper of str object at 0x12345678> data'
,这不是很有帮助。
那么,你如何做到这一点?你没有。format
被有意限制以使其更难意外运行任意不受信任的代码。如果你认为你需要一个函数调用,这通常表明你太花哨了,应该明确地创建一个中间值。例如:
string = 'text {name} data'.format(name=row['Name'].upper())