Skip to content

Commit 8f66e60

Browse files
author
Jonathan Garcia Lima
committed
adding support for lambda/callables to the new update function
1 parent 0f8957f commit 8f66e60

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

jsonpath_rw/jsonpath.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,10 @@ def find(self, datum):
432432

433433
def update(self, data, val):
434434
for field in self.reified_fields(DatumInContext.wrap(data)):
435-
data[field] = val
435+
if hasattr(val, '__call__'):
436+
data[field] = val.__call__(data[field])
437+
else:
438+
data[field] = val
436439
return data
437440

438441
def __str__(self):
@@ -466,7 +469,10 @@ def find(self, datum):
466469
return []
467470

468471
def update(self, data, val):
469-
data[self.index] = val
472+
if hasattr(val, '__call__'):
473+
data[self.index] = val.__call__(data[self.index])
474+
else:
475+
data[self.index] = val
470476
return data
471477

472478
def __eq__(self, other):

0 commit comments

Comments
 (0)