मैं एक छोटी सी स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो कुछ PHP बॉयलरप्लेट को स्वचालित करेगी जिसे मुझे लिखने की आवश्यकता है। इसे fields
सूची में प्रत्येक dict के लिए भरे विभिन्न प्रतिस्थापन फ़ील्ड के साथ आउटपुट फ़ाइल में स्ट्रिंग code
की एक प्रति लिखनी चाहिए।स्ट्रिंग स्वरूपण करते समय फ़ील्ड नाम में अप्रत्याशित '{'
हालांकि, मैं त्रुटि हो रही है:
Traceback (most recent call last):
File "writefields.py", line 43, in <module>
formatted = code.format(**field)
ValueError: unexpected '{' in field name
जहां तक मेरा बता सकते हैं, या तो प्रतिस्थापन क्षेत्रों या dicts कि समस्याएं उत्पन्न कर दिया जाना चाहिए में बिना किसी अतिरिक्त ब्रेसिज़ हैं, इसलिए किसी भी मदद करेंगे तारीफ़ लें।
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;
}
'''
fields = [
{
'fieldname': 'salary',
'label': 'Salary ($)',
'required': 'true',
'placeholder': 'e.g. 20000',
},
{
'fieldname': 'test',
'label': 'Test Field',
'required': 'true',
'placeholder': '',
}
]
with open('field-out.txt', 'w') as f:
for field in fields:
formatted = code.format(**field)
f.write(formatted)
f.write('\n')