Unexpected '{' in field name when doing string formatting Unexpected '{' in field name when doing string formatting python-3.x python-3.x

Unexpected '{' in field name when doing string formatting


You need to double any { or } that are not part of a formatting placeholder. For example, you have:

function admin_add_{fieldname}_field( $fields ) {    [....]}

in the string. The { at the end of the first line and } on the last are not part of a placeholder. Replace them with {{ and }} respectively:

function admin_add_{fieldname}_field( $fields ) {{    [....]}}

Doubling up those curly braces escapes them; the final output will contain single { and } characters again.

In the full string you used, that'd be:

code = '''// {label}add_filter( 'submit_job_form_fields', 'frontend_add_{fieldname}_field' );function frontend_add_{fieldname}_field($fields) {{    $fields['job']['job_{fieldname}'] = array(        'label' => __('{label}', 'job_manager'),        'type' => 'text',        'required' => {required},        'priority' => 7,        'placeholder' => '{placeholder}'    );    return $fields;}}add_filter( 'job_manager_job_listing_data_fields', 'admin_add_{fieldname}_field' );function admin_add_{fieldname}_field( $fields ) {{  $fields['_job_{fieldname}'] = array(    'label'       => __( '{label}', 'job_manager' ),    'type'        => 'text',    'placeholder' => '{placeholder}',    'description' => ''  );  return $fields;}}'''