首页 > 解决方案 > 使用特殊字符格式化字符串

问题描述

下面的代码抛出 KeyError。请问有什么想法吗?我尝试将牙套加倍,但仍然没有运气。

v = "My Name='{x[1].name}'"
p = "x[1].name"
pv = 'test'
v = v.format(p=pv)
print(v)

我也不想创建另一个变量,并且想对v变量进行格式化。

预期产出

My Name='test'

标签: python

解决方案


如果您确实必须{x[1].name}用作格式标记,则可以创建一个合适的对象来代替x.

v = "My Name='{x[1].name}'"

class Foo:
    name = 'test'

print(v.format(x=[Foo,Foo]))

输出:

My Name='test'

x是一个列表,x[1]是类 Foo,并且x[1].name是字符串“test”,根据需要。


推荐阅读