将titelcase字符串dict转换为大写字符串文本

时间:2013-10-17 00:08:07

标签: python python-2.7 formatting string-formatting uppercase

尝试将{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

1 个答案:

答案 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())