質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

列挙型

データ型の一種で、要素・メンバなど名前のある値や、型の列挙子によって構成されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

974閲覧

pythonでIntegersが求められる。

pokemonta

総合スコア170

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

列挙型

データ型の一種で、要素・メンバなど名前のある値や、型の列挙子によって構成されます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/10/27 04:57

編集2020/10/27 06:50

以下のインプットを取り出して辞書に格納するPythonプログラムがあります。
'body':'{"value": "22"}'
'age'に値を格納する箇所で以下のようなエラーが発生します。
TypeError('string indices must be integers')

なぜ、String型をそのまま格納できないのでしょうか?
どのようにして改善すればよいでしょうか?

python

1def lambda_handler(event, context): 2 dict = { 3 'name' : "yoshida", 4 'item' : { 5 'age' : event['body']['value'] 6 } 7 }

event

1{ 2 "body": "{\"Value\": \"22\"}" 3}

★APIGWからのリクエストボディからの
値取得方法がそもそも間違っていますか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/10/27 05:34

> 以下のインプットを取り出して辞書に格納するPythonプログラムがあります。 コードを提示いただかないと分かりません。
pokemonta

2020/10/27 05:37

これでは不十分ということですね。。すみません
guest

回答1

0

ベストアンサー

python

1event = {"body":{"Value":"22"}} 2 3def lambda_handler(event,context){ 4 dict = { 5 'name' : "yoshida", 6 'item' : { 7 'age' : event['body']['Value'] 8 } 9 } 10 11} 12 13lambda_handler(event,"a")

投稿2020/10/27 06:20

編集2020/10/27 06:21
meg_

総合スコア10579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pokemonta

2020/10/27 06:23

nameもageもともに文字列を入れているのに なぜageだけエラーになるのでしょうか?
Daregada

2020/10/27 06:27

ええと、関数の書式がJavaScirptと混ざってないかい?
meg_

2020/10/27 07:14 編集

> なぜageだけエラーになるのでしょうか? まず、ageに値を設定するところ(前)でエラーが発生しているので、値はまだはいっていません。 質問の辞書の定義ですと、キー "body"の値は'{"Value": "22"}'の文字列になります。なので['value']にアクセスしようとしてエラーが発生していると思われます。 ※エラーは文字列のスライスの添字を想定していたが文字列が入力された、的な意味ではないでしょうか?
pokemonta

2020/10/27 12:17

おっしゃる通りです。 ageに入れる前の値取り出しでエラーになっています。 {"Value": "22"}'が文字列のため辞書操作ができないことが直接の原因でした。 辞書型に変換してからValueを取り出すことで成功します。 ちなみに文字列が入力される想定です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問