0

複数の辞書オブジェクトを含むリストがあります。特定のキーと値のペアに値がないことを検出したい。値が存在する場合、それは数値です。値が存在しない場合は、空の文字列のように見えます (スタック データから判断)。

最初に私が試した:

for dictionary_item in row_list:
    if dictionary_item['targetkey'] == '':
        #do stuff

これにより、数値が検出されると、「サポートされていないオペランド タイプ」エラーがスローされます。

キーと値のペアの値は、数値または空の文字列のいずれかです。このシナリオに適したテスト式は何ですか?

4

2 に答える 2

2

私は個人的に使用しますisinstance

if isinstance(dictionary_item['targetkey'], float):

これは、数値がPython 0.0で評価されるであっても機能します。False

以下のデモンストレーションを参照してください。

>>> bool(0.0)
False
>>> isinstance(0.0, float)
True
>>> isinstance(10.0, float)
True
>>> isinstance('', float)
False
>>>
于 2013-11-12T19:21:44.143 に答える
1

これを試してみてください。辞書の値にゼロが含まれていない限り機能します。

if dictionary_item['targetkey']:
    # do stuff

上記は、dictionary_item['targetkey']がnull、空、ゼロ以外であるかどうかを確認します。辞書でゼロが有効な値である場合は、次のようにします。

if dictionary_item['targetkey'] or dictionary_item['targetkey'] == 0:
    # do stuff
于 2013-11-12T19:20:51.923 に答える