setting.ini ファイルにこのような情報がキーバリューがあったとします。ウィキペディアのトップページです。
[web-page]
URL = https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
呼び出し側の記述を何も考えずにデフォルトのままにすると、config["web-page"]["URL"]の部分で失敗します。
import configparser
config = configparser.ConfigParser()
config.read("setting.ini")
URL = config["web-page"]["URL"]
...
Traceback (most recent call last):
...
File "/.../anaconda3/lib/python3.7/configparser.py", line 444, in _interpolate_some
"found: %r" % (rest,))
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8'
対処方法
%で補完してくれる機能があってそのときの記号として%を使うとおかしなことになっていますよ、というエラーが出ている状態ですので、interpolation=None を使って補完を無視します。
import configparser
config = configparser.ConfigParser(interpolation=None)
config.read("setting.ini")
URL = config["web-page"]["URL"]
これで読み込めます。
0 件のコメント:
コメントを投稿