皆さんにこんにちはいい年!dictsのリストをdictsのdictsに変換して "複雑な" jsonをクラウドに送る
私は穏やかな複雑なjsonを雲のDBに送るのに問題があります。私の知る限り理解し (と私は合計初心者だから、それは本当に遠くありません)、Python用cloudantでcloudant DB上のファイルを送信する唯一の方法は、変数「データ」を作ることです
data = {
'_ID': 'userInfo',
'Name': 'Manu'
'Age': 23,
'Hobbies': ['cloudant', 'python', 'dockers']
}
とコマンド正常にDB内のファイルを作成
my_document = my_database.create_document(data)
を使用します。
しかし、somepointで.create_document()メソッドがキーと値を抽出しようとしているため、彼にリストを渡すとワイルドになるので、 コンソールエラーへのリンク:https://www.jepix.fr/images/cloudanterror.png
が、それは私が彼を与えるためにしようと定期的なリストではありません、それは私が、私は必要だと思う:-D dicts内部素晴らしいdictsと
[
{dict1},
{dict2},
{dict3},
{dict4},
{ },
{ },
{ },
{ },
{ }
]
:-) dictsの壮大なリストですdictsのリストをdictsとdictictのdictに変換する方法他の同僚のテンプレートで使用されているため、この辞書構造を維持するために、パーサなどや、私の見習いの底は無慈悲に蹴られます!
import cloudant
import json
from cloudant.client import Cloudant
client = Cloudant("USR", "PWD", url)
client.connect()
# Client tasks ##########################################
session = client.session()
print 'Username: {0}'.format(session['userCtx']['name'])
print 'Databases: {0}'.format(client.all_dbs())
my_db = client['scenario-json']
with open('scenarioGenerated.json', 'r') as fp:
json_str = fp.read()
json_dict = json.loads(json_str)
my_doc = my_db.create_document(json_dict)
client.disconnect()
(この時点で私はひどくそれを受け入れた私はdictの()関数で辞書にリストをキャストなどの合計初心者の必死の動きを試してみましたが、私は、私はこの関数を呼び出すのに十分な引数を持っていない私に言って引数のエラーを得ました別の方法を探して)
json.load/.loads/.dump/.dumpsでpythonのjsonライブラリを試しましたが、それはjsonを文字列に変換するのと同じ問題です"str"オブジェクトに "get"属性のエラーはありません)
オーバーフローポストの解決策を見ました:Python dump dict to json file
しかし、私はjsonを読んで、dictを記入するように、反対をする必要がありますか? dict-fillingプロセスがdict階層を緩めることができるので、私はそれが賢明な動きではないと思います...
dictsのリストをdictsのdictに変換する良い方法があればとても素敵です!
長い記事のため申し訳ありませんが、非常にnoobish疑問が、私はクジラの海でプランクトンのようだと
はどうもありがとうございました:-Pそれは良い状況ではありません。
uはについて何も知らないここ –
を助けを得ることができるように、あなたがしようとしているコードを表示してくださいCloudandですが、[documentation](https://docs.cloudant.com/document.html)には、必須の '_id'フィールドと' _rev'フィールドの他に、必要な他のJSONだけをドキュメントに入れることができます。 '{" _id ":" foo "、" _rev ":" bar "、" my_array ":[...]}のようなものはありません。 – ThisSuitIsBlackNot
@SivaCn doneこれは、ソケットでトレーニングしていたときに行ったことで動作するはずです。ソケットを介して送信する文字列としてjsonをロードしてダンプすることがありました。 データ= { "_id": "killme"、 "my_arrayで":the_json_list_of_dicts } – Manu