This is because there are conversion happening when received parameter.
Added by this commit. (Year 2014)
I don’t know why do we need this since list is a valid JSON.
I’ve tried and remove this conversion and the apps works just fine. The question is do we still need this conversion ?
My use case is I want to pass list parameter into rest API.
try:
frappe.local.form_dict = frappe._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
for k, v in iteritems(args) })
except IndexError:
frappe.local.form_dict = frappe._dict(args)
to
frappe.local.form_dict = frappe._dict(args)
Will break the app (on production setup, it doesn’t on development setup don’t know why)