-
Notifications
You must be signed in to change notification settings - Fork 87
Open
Labels
Description
I might be missing something, but why does afilter not get dict/list values? Any specific reason for that?
data = [
{
"choices": [
"Charity",
"Cooperative",
"Corporation",
"Educational institution",
"Public entity",
"International organisation"
]
},
{
"items": [
{
"choices": "country"
}
],
}
]
def afilter(x):
print x
return True
res = dpath.util.search(data, "**/choices", yielded=True, afilter=afilter)
Running this results in ...
country
('1/items/0/choices', 'country')
Or to phrase it differently: how can I search for elements which include "Charity"? My current solution looks like this:
res = dpath.util.search(data, "**/choices", yielded=True)
for item in res:
val = dpath.util.get(data, item[0])
if "Charity" in val:
print item[0]
But that would be much simpler if afilter also gets the list of the first element.