0

CouchDBのPythonラッパーを使用してデータベースを更新しようとしています。このファイルは、ネストされた辞書として次のように構成されています。

doc = { ...,
   'RLSoo': {'RT_freq': 2, 'tweet': "They're going to play monopoly now. 
     This makes me feel like an excellent mother. #Sandy #NYC"}, 
    'GiltCityNYC': {},
  ....}

RLSooたとえば、より大きな辞書の各エントリを独自のドキュメントに入れたいと思います。ただし、次のコードを試すとエラーメッセージが表示されます。

 for key in doc:
      db.update(doc[key],all_or_nothing=True)

エラーメッセージ

TypeError: expected dict, got <type 'str'>

CouchDBが辞書を受け入れない理由がわかりません。

4

1 に答える 1

1

メソッドの実現と彼のドキュメントによるDatabase.update()と、最初の引数はドキュメントオブジェクトのリスト(たとえば、dictのリスト)である必要があります。変数にはdict型があるため、doc変数を直接反復すると、実際には文字列型のすべてのキーが反復されます。私があなたのケースを正しく理解していれば、おそらくあなたdocはネストされたドキュメントをとして含んでいます。だから、ちょうど試してみてください:

db.update(doc.values(), all_or_nothing=True)

そして、それはすべて最初のレベルの値がdictであり、それは機能するはずです!

于 2012-11-27T19:07:55.903 に答える