TAB文字が含まれていると思われる JSON ファイルをロードするときに、解析の問題が発生します。
http://jsonlint.com/にアクセスして、TAB 文字を含む部分を入力すると、次のようになります。
{
"My_String": "Foo bar. Bar foo."
}
バリデーターは次のように不平を言います:
Parse error on line 2:
{ "My_String": "Foo bar. Bar foo."
------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
これは文字通り、問題のある JSON テキストのコピー/貼り付けです。
このファイルをロードしようとしjson
ましたが、simplejson
成功した場合と失敗した場合があります。これを正しくロードするにはどうすればよいですか?ファイルを前処理して、TAB をスペースに置き換える\t
か、またはスペースに置き換える必要がありますか? それとも、私がここに欠けているものはありますか?
アップデート:
これも の問題のある例ですsimplejson
:
foo = '{"My_string": "Foo bar.\t Bar foo."}'
simplejson.loads(foo)
JSONDecodeError: Invalid control character '\t' at: line 1 column 24 (char 23)