How to replace data row to csv file using python?

I have a method >

@frappe.whitelist(allow_guest=True)
def export_csv_order_status():
    
    rows = frappe.db.sql("""SELECT 
        `tabSales Order`.name as Id, 
        `tabSales Order`.status 
    FROM 
        `tabSales Order` 
    WHERE 
        `tabSales Order`.docstatus<2 and 
        `tabSales Order`.modified > %s""",(yesterday()))
    out_file = csv.writer(open("/home/order_status.csv", "wb"))
    columns = [c[0] for c in frappe.db.get_description()]
    out_file.writerow(columns)
    for row in rows: 
        if row[1] == "Draft":
              row[1] = '"SHIPPED"'
              
        out_file.writerow(row)

    return "Ok"

Data rows :
Id status
SO-00003 Submitted
SO-00004 Draft

I cant change data row.
I tried
if row[‘status’] == “Draft”:
row[‘status’] = ‘“SHIPPED”’

but It’s Error.

File "/home/frappe/frappe-bench/apps/frappe/frappe/core/page/data_import_tool/export_csv.py", line 73, in export_csv_order_status
    row[1] = '"SHIPPED"'
 TypeError: 'tuple' object does not support item assignment
1 Like

frappe.db.sql return results in tuple format. And tuple is immutable data-type, you can not change the value of tuple or assign into it.