不支持的格式字符“{”

2024-10-06 12:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想输出一个yaml文件,我打算与“hiera”一起使用。我想输出如下内容:

---
top: '/tmp'
package: 'mypackage'
version: 1
password: 'cubswin:)'
make_audiobook::package_name: "%{hiera('package')}"
make_audiobook::version: "%{hiera('version')}"
make_audiobook::mp3filesdir: "%{hiera('top')}/%{::appname}/%{::appname}/res/raw"
make_audiobook::app_image::app_image_url: 'http://big/long/path'
make_audiobook::app_image::resource_path:  "%{hiera('top')}/%{::appname}/%{::appname}"
make_audiobook::app_javacode::appname:          "%{::appname}"
make_audiobook::app_javacode::password:         "%{hiera('password')}"
make_audiobook::app_javacode::apptitle:         "The Title of The App"
make_audiobook::app_javacode::package:          "%{hiera('package')}"
make_audiobook::app_javacode::path_to_code:     "%{hiera('top')}/%{::appname}/%{::appname}/src/com/%{hiera('package')}/%{::appname}"
make_audiobook::app_javacode::path_to_androidmanifest:     "%{hiera('top')}/%{::appname}/%{::appname}"
make_audiobook::app_javacode::version:          "%{hiera('version')}"

所以我试过这个。。。你知道吗

print """
---
top: '%s'
package: '%s'
version: %s
password: '%s'
make_audiobook::package_name: "%{hiera('package')}"
make_audiobook::version: "%{hiera('version')}"
make_audiobook::mp3filesdir: "%{hiera('top')}/%{::appname}/%{::appname}/res/raw"
make_audiobook::app_image::app_image_url: '%s'
make_audiobook::app_image::resource_path:  "%{hiera('top')}/%{::appname}/%{::appname}"
make_audiobook::app_javacode::appname:          "%{::appname}"
make_audiobook::app_javacode::password:         "%{hiera('password')}"
make_audiobook::app_javacode::apptitle:         "%s"
make_audiobook::app_javacode::package:          "%{hiera('package')}"
make_audiobook::app_javacode::path_to_code:     "%{hiera('top')}/%{::appname}/%{::appname}/src/com/%{hiera('package')}/%{::appname}"
make_audiobook::app_javacode::path_to_androidmanifest:     "%{hiera('top')}/%{::appname}/%{::appname}"
make_audiobook::app_javacode::version:          "%{hiera('version')}"
make_audiobook::app_javacode::tracks:
""" % (top, package, version, app_image_url, apptitle)

但我有个错误:

Traceback (most recent call last):
  File "./get_track_titles.py", line 54, in <module>
    """ % (top, package, version, app_image_url, apptitle)
ValueError: unsupported format character '{' (0x7b) at index 88

Tags: topathimageappurlpackagemakeversion
1条回答
网友
1楼 · 发布于 2024-10-06 12:33:14

您使用的是Python的字符串格式,%字符告诉它要进行替换(替换的细节由下面的一个或多个字符决定)。您还希望一些原始的%字符出现在输出中,但是%{在Python看来就像您试图进行替换,但是在%后面有一个不合适的字符。你知道吗

要使%字符出现在输出中,您需要通过加倍来转义它们。表达式"%s %% %s" % ("foo", "bar")变为"foo % bar"。你知道吗

相关问题 更多 >