I have a JSON file recover from requests.get
here is some of my JSON:
[{"order":{"id":"B4589B26","status_order_id":5,"status_order_name":"Sent","customer_id":326
"order_products":[{"order_product":{"id":96218,"order_id":96538,"product_id":59320,}}],"customer_email":"[email protected]","customer_company":"SARL","customer_name":"user user", .....
here is my code:
token = "xxxx"
r = requests.get('url', auth=('[email protected]', token))
mydb = pymysql.connect(host='localhost',
user='root',
passwd='user',
db='ytm_db')
cursor = mydb.cursor()
data = r.json()
json_obj = json.loads(r)
for ord in json_obj["order"]:
print("id:", ord["id"])
print("status_id:", ord["status_order_id"])
print('---')
cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))
#close the connection to the database.
mydb.commit()
cursor.close()
print ("Done")
I have this error:
'not {!r}'.format(s.__class__.__name__))
TypeError: the JSON object must be str, bytes or bytearray, not 'Response'
You do not need this line json_obj = json.loads(r)
. r.json()
returns you a json response.
Ex:
json_obj = r.json()
for ord in json_obj["order"]:
print("id:", ord["id"])
print("status_id:", ord["status_order_id"])
print('---')
cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["id"], ord["status_order_id"], ord["customer_id"]))
#close the connection to the database.
mydb.commit()
cursor.close()
This is the right solution :
json_obj = r.json()
for ord in json_obj:
print("id:", ord["order"]["id"])
print("status_id:", ord["order"]["status_order_id"])
print('---')
cursor.execute("INSERT INTO table_test (id, status_order_id, customer_id) VALUES (%s,%s,%s)", (ord["order"]["id"], ord["order"]["status_order_id"], ord["order"]["customer_id"]))
#close the connection to the database.
mydb.commit()
cursor.close()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With