My python2.7 code contains lambda sort technique to sort fetched elements according to the defined order. Yesterday i migrated from python 2.7 to python 3.6, The problem is after migration the line where i wrote lambda sort is throwing error in program. For migration from py2 to py3 i used lib2to3. I believe this is cause of some syntax miss match in py3, But couldn't figure it out. The error log is as mentioned below-
My code Fragment:
property_sort_order = ['field', 'rename', 'selected', 'description']
node_property_value_list = []
node_property_value_list = node_property_value[nodekey]
node_property_value_list = [OrderedDict(
sorted(item.iteritems(), key=lambda (k, v): property_sort_order.index(k)))
for item in node_property_value_list]
for item in node_property_value_list]
#print node_property_value_list
node_property_value[nodekey] = node_property_value_list
Errror:
for item in node_property_value_list]
TypeError: <lambda>() missing 1 required positional argument: 'v'