次の JSON データがあるとします。
{ "_id" : { "$oid" : "string" }, "titulo" : "string", "id_cv" : 1132, "textos" : [ { "fecha" : { "$date" : 1217376000000 }, "estado" : "string", "texto" : "string", "source_url" : "string" } ] }
{ "_id" : { "$oid" : "string" }, "titulo" : "string", "autores" : ",\"string\",\"string\",\"string\",\"string",5", "id_cv" : 1138, "textos" : [ { "fecha" : { "$date" : 1217548800000 }, "estado" : "string", "texto" : "string", "source_url" : "string" } ] }
JSON データを R にインポートし、最終的に R データ フレームに変換しようとしています。
R に次のスクリプトがあるとします。
library("rjson")
json_file <- "/Users/usr/file/json_data.json"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))
data = unlist(json_data)
title=data[names(data)=="titulo"]
print(title)
text=data[names(data)=="textos.texto"]
print(text)
url=data[names(data)=="textos.source_url"]
print(url)
このスクリプトを実行すると、JSON データは、JSON データ ファイルの最初の行を含むデータ フレームのみを生成します。約200行あります。私が認識している問題の 1 つは、JavaScript が複数行の文字列を「許可」しないことです。私はさまざまな方法でこれに対処しようとしました:
- データの各「行」の間に「"」を追加します。
- データの各「行」の末尾に「"」を追加します。
- データの各「行」の間に「\」を追加します。
- データの各「行」の末尾に「\」を追加します。
- 複数の行をすべて 1 行に変換します (「\n」を「\n」に置き換えます)。
上記のすべては、正規表現を使用して試みられました。
私の質問は次のとおりです。データのすべての「行」がRに読み込まれるようにJSONデータを操作して、それらをリストから外し、「タイトル」、「テキスト」に等しい列を持つ適切なデータフレームを構築するにはどうすればよいですか? 、「url」、行は JSON データの「行」と同じですか?
R の RJSON ライブラリと RJSONIO ライブラリの両方を使用してこれを試みましたが、最終的に問題は JSON データ自体のフォーマットにあると考えているため、現時点でどちらを使用するかについては曖昧です。