Я новичок в Python и имею дело с JSON.Я пытаюсь получить массив строк из моей базы данных и передать их API.Я не знаю, почему я получаю ошибку отсутствующих данных.Ребята, можете посмотреть?
###########################################
rpt_cursor = rpt_conn.cursor()
sql="""SELECT `ContactID` AS 'ContactId' FROM
`BWG_reports`.`bounce_log_dummy`;"""
rpt_cursor.execute(sql)
row_headers=[x[0] for x in rpt_cursor.description] #this will extract row headers
row_values= rpt_cursor.fetchall()
json_data=[]
for result in row_values:
json_data.append(dict(zip(row_headers,result)))
results_to_load = json.dumps(json_data)
print(results_to_load) # Prints: [{"ContactId": 9}, {"ContactId": 274556}]
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
}
targetlist = '302'
# This is for their PUT to "add multiple contacts to lists".
api_request_url = 'https://api2.xyz.com/api/list/' + str(targetlist)
+'/contactid/Api_Key/' + bwg_apikey
print(api_request_url) #Prints https://api2.xyz.com/api/list/302/contactid/Api_Key/#####
response = requests.put(api_request_url, headers=headers, data=results_to_load)
print(response) #Prints <Response [200]>
print(response.content) #Prints b'{"status":"error","Message":"ContactId is Required."}'
rpt_conn.commit()
rpt_cursor.close()
###########################################################
Редактировать для Clarity:
Я передаю это [{"ContactId": 9}, {"ContactId": 274556}] и я получаю это тело ответа b '{"status": "error", "Message": "ContactId обязательно."}'
APIдокумент дает это как от, чтобы следовать за телом запроса. [{"ContactId": "string"}]
Когда я вручную помещаю эти данные в тестовый объект, я получаю то, что хочу.[{"ContactId": "9"}, {"ContactId": "274556"}]
Может быть, что-то не так с json.dumps vs json.load?Разве я не создаю диктат, а скорее строку, которая выглядит как диктат?
РЕДАКТИРОВАТЬ, ЧТО Я В ЭТОМ ВЫРАЖАЛ!
Мне нужно было определить results_to_load = [] как дикт, прежде чем я загрузил его в results_to_load = json.dumps (json_data) .
Спасибоза все ответы и попытки помочь.