ユーザーが編集可能な JSON 構成ドキュメントをアプリケーションのディクショナリにロードする必要がある状況があります。
問題を引き起こす特定のシナリオの 1 つは、次のような Windows UNC パスです。
\\server\share\file_path
したがって、これに対する有効な JSON は直感的に次のようになります。
{"foo" : "\\\server\\share\\file_path"}
ただし、これは無効です。
これでぐるぐる回ります。ここにいくつかの試行があります:
# starting with a json string
>>> x = '{"foo" : "\\\server\\share\\file_path"}'
>>> json.loads(x)
ValueError: Invalid \escape: line 1 column 18 (char 18)
# that didn't work, let's try to reverse engineer a dict that's correct
>>> d = {"foo":"\\server\share\file_path"}
>>> d["foo"]
'\\server\\share\x0cile_path'
# good grief, where'd my "f" go?
まとめ
- \\server\share\file_pathを含む適切な形式の JSON ドキュメントを作成するにはどうすればよいですか?
- その文字列を正確な値を返す辞書にロードするにはどうすればよいですか?