pformat()辞書を文字列に変換するために使用する関数があります(無関係:文字列は後でファイルに挿入されwrite()ます.py)。
したがってMY_DCT = {1: 11, 2: 22, 3: 33}、次のような文字列になります。
MY_DCT = {
1: 11,
2: 22,
3: 33}
関数には 2 つの要件があります。
- 辞書項目は、最初の行の後に表示する必要があります。
- 要素は 4 つの空白でインデントする必要があります。
関数は次のとおりです。
import pprint
def f(obj_name, obj_body_as_dct):
body = '{\n' + pprint.pformat(obj_body_as_dct, indent=4, width=1)[1:]
name_and_equal_sign = obj_name + ' = '
return name_and_equal_sign + body + '\n\n'
d = {1: 11, 2: 22, 3: 33}
print(f('MY_DCT', d))
indent=0この文字列を取得した場合:
MY_DCT = {
1: 11,
2: 22,
3: 33}
indent=4この文字列を取得した場合:
MY_DCT = {
1: 11,
2: 22,
3: 33}
パラメータを確認しましたpformat()が、正しい数の空白を各行に表示する方法がわかりませんでした。
replace()などを使用して文字列を修正できることはわかって+' 'いますが、余分な空白がどこから来ているのか、パラメータを正しく設定することでそれを取り除くことができるかどうか疑問に思っています (それが可能であれば、それはそうです)。
注:上記を達成するためのより良い方法がある場合は、お知らせください。