3

settings.py というファイルがあり、その内容は次のとおりです。

{
    "translate_tabs_to_spaces": True,
    "word_wrap": "true",
    "font_face": "Monaco",
    "font_size": 14.0,
    "highlight_line": True,
    "ignored_packages":
    [
        ""
    ],
    "what": '''
            This is python file, not json
            '''
}

メインアプリファイル app.py の settings という辞書に入れるにはどうすればよいですか?

ありがとう。

4

3 に答える 3

3

その辞書に名前を付けてsettings、settings.pyからインポートするだけではありません。

設定.py

settings = {} # fill with your data

このように使用します

>>> from settings import settings
>>> print settings
{}

別の解決策は、設定モジュール レベルで変数を追加して直接使用することです。なぜ dict が必要なのですか? 例えば

設定.py

translate_tabs_to_spaces = True
# more settings

このように使用します

>>> import settings
>>> settings.translate_tabs_to_spaces
True
于 2012-05-03T21:22:40.883 に答える
1

設定モジュールで設定ディクテーションに名前を付けてから、設定モジュールをモジュールにインポートし、次のような変数にロードします

import settings
your_settings = settings.settings_dict
于 2012-05-03T21:22:14.027 に答える
1

ast.literal_eval()これを安全に行うために使用できます。

import ast

data="""\
{
    "translate_tabs_to_spaces": True,
    "word_wrap": "true",
    "font_face": "Monaco",
    "font_size": 14.0,
    "highlight_line": True,
    "ignored_packages":
    [
        ""
    ],
    "what": '''
            This is python file, not json
            '''
}\
"""

print(ast.literal_eval(data))

私たちに与えること:

{'what': '\n            This is python file, not json\n            ', 'font_size': 14.0, 'translate_tabs_to_spaces': True, 'font_face': 'Monaco', 'word_wrap': 'true', 'highlight_line': True, 'ignored_packages': ['']}

編集:

...質問者からの新しいコメントを考えると、彼は自分の構成で使用できるようにしたいことを示唆しており、楕円を処理できないため、適切ではありませast.literal_eval()これが彼の意図したものかどうかは定かではありませんが、これは質問に対する適切な回答です。

質問者は、これによって正しく処理される三重引用符で囲まれた文字列について話していたことが判明しました。

于 2012-05-03T21:21:17.587 に答える