問題タブ [keyerror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
13810 参照

python - KeyError のテスト

KeyError不正なキーがディクショナリに渡されたときに が作成されることを確認する単体テストを作成しようとしています。

例外を発生させるコード:

ラムダを使用したテストを探して見つけましたがKeyError、あまり運がありませんでした。ここに私がこれまでに行ったテストがありますが、実際のKeyError.

0 投票する
1 に答える
2077 参照

python - Python が KeyError を IndexError とは異なる方法で処理するのはなぜですか (この場合)?

変数がまだ存在しない場合にのみ変数を定義するという問題に対するさまざまな1行の解決策を試していたところ、Pythonが辞書とリスト/タプルを異なる方法で処理することに気付きました。これらのエラーは私には完全に類似しているように見えるので、なぜ矛盾があるのか​​混乱しています.

ディクショナリ キーのエラー処理

戻り値{"spam": 1, "eggs": 2, "foo": 3}

左側と右側の両方で存在しないキーを参照していることに注意してください。Python は、KeyError が出現するどちらの句でも問題なく KeyError を処理します。

List IndexError 処理(タプルにも当てはまります)

戻り値IndexError: list assignment index out of range

この特定のエラーを回避することはまったく難しいことではありません (ここで回答) が、これらのケースに違いがある理由に興味があります。どちらの状況でも、担当者/割り当て句の両方にエラーがあり、「そうでない場合」のエラーキャッチが1つあるようです。

0 投票する
4 に答える
32542 参照

python - KeyError を回避するためのデフォルトの辞書キー

JSON を呼び出して、関連データを CSV として解析しています。多くのキーが入力されていないため、中間の JSON dict ファイルにデフォルトのキーを入力する方法がわかりません。コンテンツを CSV に解析しようとすると、結果は KeyError になります。

現在、(製造元) の「NoneType」エラーが発生しています:

0 投票する
1 に答える
47067 参照

python - Key が存在する場合の KeyError

python と twitter api を使用してつぶやきオブジェクトを取得します。

ツイートを含むファイル (tweetfile = 私のコンピューター上の .txt ファイル) があり、オブジェクトをループしてテキストを取得しようとしています。キーを確認するために tweetObj.keys() で twitter オブジェクトをチェックしたところ、「テキスト」がそこにありました。ただし、tweetObj['text'] を使用して個々のテキストを取得しようとすると、KeyError: 'text' が発生します。

コード:

以下は出力です:

1つのツイートを出力するように見えるので、アプローチ方法がわかりません。問題は、キーが存在し、すべてのインスタンスではなく、値を返すように見える場所でこれが発生するのはなぜですか?そのキーを持つすべての行の値にアクセスできる場所に修正するにはどうすればよいですか?

0 投票する
1 に答える
2186 参照

python - str(KeyError) が余分な引用符を追加するのはなぜですか?

KeyErrorの文字列表現でエラー メッセージに余分な引用符が追加されるのはなぜですか? 他のすべての組み込み例外は、エラー メッセージ文字列を直接返すだけです。

たとえば、次のコード:

次の出力が生成されます。

他の組み込み例外 ( IndexErrorRuntimeErrorExceptionなど) のサンプルでこれを試してみましたが、それらはすべて引用符なしで例外メッセージを返します。

help(KeyError)は、基本クラスで定義されたものを使用する とは対照的に、__str__(...)で定義されていると言います。これは、動作がどのように異なるかを説明していますが、でオーバーライドされる理由は説明していません。組み込み例外に関する Python のドキュメントでは、この不一致について何の説明もありません。KeyErrorLookupErrorBaseException __str__(...)KeyError

Python 2.6.6 に対してテスト済み