1
私は次のコード行がありますどのようにマップをDynamoDBテーブルに挿入しますか?
table.put_item(Item={'filename' : key, 'status' : {'M' : iocheckdict }})
iocheckdict
は次のようになります。私は、コードを実行しているときに
{'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}
、私はこのエラーを取得する:
An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Type mismatch for key status expected: S actual: M
データの種類としてM
と書いてありますが、なぜこれを取得していますか?
PS:私は2列filename
とstatus
私のテーブルのテーブルの
属性の定義があります:私はstatus
の種類がSであることを理解し
"AttributeDefinitions": [
{
"AttributeName": "filename",
"AttributeType": "S"
},
{
"AttributeName": "status",
"AttributeType": "S"
}
],
を、私の避難所テーブルを作成中にマップタイプが見つかりませんでした。私が見つけたのはstring
、binary
とnumber
です。
に挿入しますM:{"Name":{"S": "Joe"}、 "Age":{"N": "35"}} 'のように、' dict'部分は'{" S ":" Joe "}、" Age ":{" N ":" 35 "}}'のようなものです。 –
@EmreSevinç私は私に辞書を '' N ":" 0 "}、{" N ":" 0 "}、{" N ":" 0 " "0"}、 "S4":{"N": "0"}、 "S5":{"N": "0"}}。しかし、この文は次のとおりです: 'table.put_item(Item = {'filename':key、 'status':{'M':iocheckdict}})'私には同じエラーが返されます。回答を書くことは可能でしょうか? – Dawny33
質問を編集してテーブルに関する詳細情報を追加した場合などに役立ちます。あなたのテーブルのスキーマの詳細。なぜなら、あなたのフィールド 'filename'と' status'の型はあなたの変数 'key'と' iocheckdict'の型と一致しないかもしれないと思うからです。 –