尝试将{r[Name]}
重新格式化为大写时(最初是标题: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'
有什么想法吗?非常感谢SMNALLY
答案 0 :(得分:4)
这是因为字符串没有名为uppercase
的方法,正如错误消息所说的那样。
你可能想要upper
。
但是,您无法以这种方式实际调用格式字符串中的方法。你可以访问upper
属性(只删除parens),但是你会得到像'text <built-in method upper of str object at 0x12345678> data'
这样的东西,这对你来说并不是很有帮助。
那么,做你是怎么做到的?你没有。故意限制format
以使意外运行任意不受信任的代码变得更加困难。如果您认为需要函数调用,那通常表明您过于花哨,应该明确地创建一个中间值。例如:
string = 'text {name} data'.format(name=row['Name'].upper())