1

テキスト分析を行うために、Facebook Graph API Explorer から R にデータを読み込もうとしています。ただし、JSON フィードにエスケープされていないバックスラッシュがあるようで、rjson が barf する原因となっています。以下は、問題を引き起こしている種類の入力の最小限の例です。

library(rjson)
txt <- '{"data":[{"id":2, "value":"I want to \\"post\\" a picture\\video"}]}'
fromJSON(txt)

\\"(二重のバックスラッシュは、解析後に単一のバックスラッシュに変換されることに注意してください\\video。これは、実際のデータにあります。)

RJSONIO パッケージも試してみましたが、これもエラーが発生し、R がクラッシュすることもありました。

誰もこの問題に遭遇したことがありますか? 発生するすべてのエラーを手動で追跡する以外に、これを修正する方法はありますか? 潜在的に数メガバイトの JSON が解析される可能性があり、エラー メッセージは、問題のある入力が正確にどこにあるかについてあまり有益ではありません。

4

2 に答える 2

0

問題は、無効な JSON を解析しようとしていることです。

library(jsonlite)
txt <- '{"data":[{"id":2, "value":"I want to \\"post\\" a picture\\video"}]}'
validate(txt)

問題は、R やその他の言語では有効なエスケープ シーケンスであるにもかかわらず、有効な JSON エスケープ シーケンスではないためですpicture\\video\vおそらくあなたは次のことを意味します:

library(jsonlite)
txt <- '{"data":[{"id":2, "value":"I want to \\"post\\" a picture\\/video"}]}'
validate(txt)
fromJSON(txt)

いずれにしても、無効な JSON を生成している JSON データ ソースに問題があります。このデータが本当に Facebook から来ている場合、API にバグが見つかりました。しかし、それを正しく取得していない可能性が高くなります。

于 2014-07-25T11:08:20.847 に答える