0
現在、Cassandra-Rubyドライバを使用して、JSONファイルのデータをデータベースの既存のテーブルに挿入しています。Cassandraテーブルにjsonファイルを挿入する
JSONファイルには、次のようになります。
[
{
"id": "123",
"destination": "234",
"type": "equipment",
"support": "type 1",
"test": "test1"
},
{
"id": "234",
"destination": "123",
"type": "equipment",
"support": "type 1",
"test": "test1"
}
]
私はこのようなファイルで読んでいます:アレイを介し
file = File.read('itemType.json')
data_hash = JSON.parse(file) #return an array of hashes
反復処理し、各ハッシュ を取得し、テーブル上に各ハッシュを挿入します
data_hash.each do |has|
#check the type of each object
#puts has.class #return hash
insert_statement = session.prepare('INSERT INTO keyspace.table JSON ?')
session.execute(insert_statement, [has]) #error occurs here
end
このコードを実行すると、このエラーメッセージが表示されます
in `assert_instance_of': options must be a Hash
テーブルに挿入されている各オブジェクトがハッシュであることを確認したので、なぜこの問題が発生するのかわかりません。
'.to_json'メソッドを使用して各オブジェクトをJSONに変換しても、私はまだ同じエラーが発生しています – danynl
' keyspace.table'は正しいキースペース名とテーブル名ですか? – NiVeR
はい、私はそれらから問い合わせることができるので、すべて正しいです。 – danynl