【问题标题】:Converting titelcase string dict to uppercase string text将titelcase字符串dict转换为大写字符串文本
【发布时间】:2013-10-17 00:08:07
【问题描述】:

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

有什么想法吗?非常感谢 SMALLY

【问题讨论】:

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


    【解决方案1】:

    这是因为字符串没有名为 uppercase 的方法,正如错误消息所说的那样。

    你可能想要upper

    但是,您实际上不能以这种方式调用格式字符串中的方法。您可以访问upper 属性(只需删除括号),但随后您会得到类似'text <built-in method upper of str object at 0x12345678> data' 的东西,这不是很有帮助。

    那么,你是如何的呢?你没有。 format 被有意限制以使其更难意外运行任意不受信任的代码。如果你认为你需要一个函数调用,那通常表明你太花哨了,应该明确地创建一个中间值。例如:

    string = 'text {name} data'.format(name=row['Name'].upper())
    

    【讨论】:

    • 尝试返回以下内容:text <built-in method upper of str object at 0x045ED440> data
    • @SMNALLY:这正是答案所说的将会发生的事情。
    • 现在可以了,但不是在我最初评论的时候。无论如何,感谢您的回答,它工作得很好。
    • 我认为我只说对这个答案发表评论的人是正确的,或者如果您随后发表评论,OP 会收到通知。不是随机投票者?
    猜你喜欢
    • 2018-09-16
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多