Неверный тип для AWS DynamoDB put-item через интерфейс командной строки (unicode v. Dict)

Я хотел бы добавить элемент в свою таблицу DynamoDB через командную строку, но у меня возникла ошибка типа.

Данные, которые я пытаюсь добавить, очень просты:

{
  "id": "1"
}

Команда, которую я выполняю, одинаково проста:

aws dynamodb put-item --table-name my_table --item '{ "id": "1" }'

Я получаю следующее сообщение об ошибке:

Invalid type for parameter Item.id, value: 1, type: <type 'unicode'>, valid types: <type 'dict'>

У меня есть опыт работы с JavaScript, поэтому я не знаком с dict типами. Насколько я понимаю из некоторых источников, которые я читал, это что-то вроде Python? Как мне преобразовать мои данные во что-то, что может обрабатывать DynamoDB?


person samcorcos    schedule 03.12.2016    source источник


Ответы (2)


вам нужно добавить информацию о типе (я предполагаю, что здесь String)

aws dynamodb put-item --table-name my_table --item '{ "id": {"S": "1" } }'
person hellomichibye    schedule 05.12.2016
comment
Ах, я понимаю, что вы имеете в виду. Это интересное решение с их стороны. Думаю, следующим шагом будет написание сценария для автоматизации обнаружения типов и переформатирования. Спасибо! docs.aws.amazon.com/cli/ последняя / ссылка / динамодб / - person samcorcos; 05.12.2016
comment
Это отличный ответ .. не уверен, что он где-то задокументирован, но после добавления информации о типе он работает :) - person Sahas; 09.09.2018

Мы не можем предоставить простую схему JSON в качестве входных данных для команды dynamodb put-item. Нам необходимо предоставить атрибуты типа данных вместе с со своим значением.

Но если у вас сложная схема JSON и вы плохо знакомы с командами aws dynamodb cli, вам становится действительно утомительно готовить входной файл JSON.

Но у нас есть и простое решение, выполните следующие действия:

  • Подготовьте образец схемы JSON, которую вы хотите вставить в свою таблицу Dynamodb.
  • Войдите в Консоль AWS, перейдите в DynamoDB -> Таблицы -> и на верхних вкладках выберите Items, он покажет вам данные, если они уже есть.
  • Теперь щелкните Create Item, откроется новое окно и выберите вариант Text вместо Tree. Вставьте туда образец схемы JSON и сохраните этот элемент.
  • Теперь выберите эту запись и из Actions выберите вариант Export to .csv. Этот файл csv содержит имя вашего атрибута JSON (ключи), их соответствующие значения вместе с их типом данных.
  • Теперь большая часть работы сделана за вас, и вы можете легко создать входной файл JSON для своей команды dynamodb put-item.
person Jitender Kumar    schedule 16.06.2020