Get items from Production order based on supplier name - error

I am trying to get items from(Button) production order(select multiple production order) based on supplier name (supplier name in purchase order doc),but I am facing an error “TypeError: expected string or buffer” in my .py file.

error -----

Traceback (most recent call last):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 62, in application
    response = frappe.handler.handle()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 22, in handle
    data = execute_cmd(cmd)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 53, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 939, in call
    return fn(*args, **newargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/mapper.py", line 38, in map_docs
    target_doc = method(src, target_doc)
  File "/home/frappe/frappe-bench/apps/footwear_erpnext/footwear_erpnext/hooks_call/production_order.py", line 62, in make_material_request
    target_doc = frappe.get_doc(json.loads(target_doc))
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

my py code

@frappe.whitelist()
def make_material_request(source_name, target_doc):
	import json
	target_doc = frappe.get_doc(json.loads(target_doc))
	default_supplier_temp = target_doc.supplier
	target_doc.items = []
	def postprocess(source, doc):
		doc.project_type = "External"
		doc.project_name = source.name

	def update_item(source, target, source_parent):
		target.project = source_parent.project

	doc = get_mapped_doc("Production Order", source_name, {
	    "Production Order": {
	        "doctype": "Purchase Order",
	        "validation": {
	            "docstatus": ["=", 1],
	        }
	    },

		"Production Order Item": {
		"doctype": "Purchase Order Item",
		"field_map": [
			["name", "production_order_item"],
			["parent", "productio_order"],
			["required_qty", "qty"],
			["rate","price_list_rate"],
			["amount","amount"],
			["uom","stock_uom"],
			["makwiz_plan_number","makwiz_plan_number"],
			["makwiz_sales_order","makwiz_sales_order"],
			["makwiz_production_order_number","makwiz_production_order_number"],
			["item_code","item_code"],
			["production_order", "production_order"],
			["production_order_item", "production_order_item"],
			["makwiz_hidden_field","description"],
			["from_for_grade_a","from_for_grad_a"],
			["from_for_grade_b","from_for_grad_b"],
			["from_for_grade_c","from_for_grad_c"],
			["from_for_grade_d","from_for_grad_d"],
			["to_for_grade_a","to_for_grad_a"],
			["to_for_grade_b","to_for_grad_b"],
			["to_for_grade_c","to_for_grad_c"],
			["to_for_grade_d","to_for_grad_d"],
			["makwiz_qty_grade_a","qty_for_grade_a"],
			["makwiz_qty_grade_b","qty_for_grade_b"],
			["makwiz_qty_grade_c","qty_for_grade_c"],
			["makwiz_qty_grade_d","qty_for_grade_d"],
			["source_warehouse","warehouse"],
		],
		"postprocess": update_item,
		"condition": lambda doc: doc.default_supplier == default_supplier_temp
		}
	}, target_doc, postprocess)

	return doc