CKANで収穫しながらCSVデータをデータストアに保存します。

StackOverflow https://stackoverflow.com/questions/14727695

  •  07-03-2022
  •  | 
  •  

質問

外部サイトからCKAN(バージョン1.8)へのデータをインポートするためのカスタムハーベスタを構築しています。

それはかなりよく機能し、メタデータとそれに関連するリソースを作成します。このリソースを集約して、インポートフェーズで収集しながら、データストアに保存する新しいCSVを作成します。

私はデータストアAPIを使うことができるのを知っていますが、私はHTTPを使わないことをお勧めします(それは私にとってはそれを追加するための許可を持つためのAPIキー/ユーザー/ url / ...を与えるために私には意味がありません)

データストアAPI関数をハーベスターから直接呼び出すことは可能ですか?https://github.com/okfn/ckan/blob/master/ckanext/datastore/logic/action.py

すべての関数は文書化されていないコンテキストパラメータを取ります。

役に立ちましたか?

解決

あなたはここでやっているいくつかの明確なものを持っています:

  • データストア内の挿入のための適切なPython(またはJSON)構造にCSVを変換する
  • データストアへの挿入

後者の場合は、次のいずれかを使用できます。

APIはロジックアクションを呼び出す(プラスはauth auth)ようになるので、これはかなり似ていますが、ロジックアプローチはおそらく速くなる可能性があり、すでにコードをしている場合は自然になる可能性があります。それは、あなたが定義されたWeb APIの形であなたのさまざまなコンポーネントに素敵な境界を持っているので、APIは概念的に掃除機であるかもしれないと述べた。

前者のために(すなわち、CSVからJSONへの変換)を使用することをお勧めします データコンバータライブラリ, 特にあなたが必要とするフォーマットに変換するcommas.py部分。データコンバータに基づいて開発されているフルWebサービスがありますが、まだ完全に動作可能ではありません。

他のヒント

これを解決しました。これは、ckanext-datastorer(データストア用)とckanclientを使用して(ファイルをアップロードするための)

CKANClientはCKAN 1.8に悩まされています。リダイレクトを正しく処理しないためです。私たちはこの出血と汚れたパッチで解決しました https://gist.github.com/mammadori/4945812.

より良い修正は完全にURLLIBを削除し、代わりに要求を使用するようにCkanClient全体を変更します。

ご協力ありがとうございました

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top