考虑这个词:
d = {
value_1 = 'hello',
value_2 = False,
value_3 = 29
}
我想在这样的文件中写这些变量:
value_1 = 'hello'
value_2 = False
value_3 = 29
我试过了:
f.write(
"\n".join(
[
"{key} = {value}".format(**dict(key=k, value=v))
for k, v in d.items()
]
)
)
但输出是
value_1 = hello # not a string
value_2 = False
value_3 = 29
答案 0 :(得分:5)
使用时应使用值的repr
表示。在字符串格式中使用{!r}
:
>>> x = 'hello'
>>> print x
hello
>>> print repr(x)
'hello'
>>> print '{!r}'.format(x)
'hello'
<强>演示:强>
>>> from StringIO import StringIO
>>> c = StringIO()
>>> d = {
... 'value_1' : 'hello',
... 'value_2' : False,
... 'value_3' : 29
... }
>>> for k, v in d.items():
... c.write("{} = {!r}\n".format(k, v))
...
>>> c.seek(0)
>>> print c.read()
value_1 = 'hello'
value_3 = 29
value_2 = False
答案 1 :(得分:2)
使用repr
。 **dict(…)
也很愚蠢。
"{key} = {value}".format(key=k, value=repr(v))