本当に奇妙なことが起こっています。フィールドキーに関連する特定の値を持つすべてのアイテムを見つけるために、一連の辞書をループしようとしています。次のようにします。
ex_set は、私が制御できない mysql システムからの出力です。Python を使用して再作成する必要がある場合は、次のようになります。
dict_a [ 'field' ] = 'fruit'
dict_a [ 'value' ] = 'apple'
dict_b [ 'field' ] = 'fruit'
dict_b [ 'value' ] = 'berry'
ex_set = set()
ex_set.add (dict_a,dict_b)
重要なのは、セットを印刷したときにどのように見えるかです。
pprint (ex_set)
OUTPUTS> ({'field' : 'fruit',
'value' : 'apple'},
'field' : 'fruit'},
'value' : 'berry'})
i = 0
while len ( ex_set ) > i:
for k , v in ex_set [i].iteritems ( ):
if v == 'fruit':
pprint ( ex_set[i] )
i += 1
問題は、これを印刷しても、値が "fruit" であるすべての辞書が印刷されないことです。
一連の辞書を検索するより良い方法はありますか? 私が検索しているセットには、各辞書に 3 つのキーと値の組み合わせがあり、約 30,000 の辞書があります。これは約 25% の確率で機能しますが、一致の約 20% しか返されない理由がわかりません。
助けてくれてありがとう!