.
Buenas tardes quiero cambiar una respuesta desde la api de limesurvey, me conecto por medio de python pero este codigo
Code:
import urllib.request
import json
import ssl
# Deshabilitar la verificación del certificado SSL
ssl._create_default_https_context = ssl._create_unverified_context
def get_question_properties(session_key, survey_id, question_id, language=None):
url = "https://blacho.limesurvey.net/index.php/admin/remotecontrol"
# Construir los parámetros para la solicitud JSON-RPC
params = {
"method": "get_question_properties",
"params": [session_key, survey_id, question_id, language],
"id": 1
}
# Codificar los datos como JSON
data = json.dumps(params).encode('utf-8')
# Configurar los encabezados de la solicitud
headers = {
'Content-Type': 'application/json',
'Connection': 'Keep-Alive'
}
# Crear la solicitud
req = urllib.request.Request(url=url, data=data, headers=headers)
try:
# Realizar la solicitud
with urllib.request.urlopen(req) as f:
response = f.read().decode('utf-8')
response_json = json.loads(response)
print("Propiedades de la pregunta obtenidas con éxito:")
print(response_json) # Imprimir las propiedades de la pregunta
return response_json
except Exception as e:
print("Error al obtener las propiedades de la pregunta:", e)
def set_question_properties(session_key, survey_id, question_id, properties):
url = "https://blacho.limesurvey.net/index.php/admin/remotecontrol"
# Construir los parámetros para la solicitud JSON-RPC
params = {
"method": "set_question_properties",
"params": [session_key, survey_id, question_id, properties],
"id": 1
}
# Codificar los datos como JSON
data = json.dumps(params).encode('utf-8')
# Configurar los encabezados de la solicitud
headers = {
'Content-Type': 'application/json',
'Connection': 'Keep-Alive'
}
# Crear la solicitud
req = urllib.request.Request(url=url, data=data, headers=headers)
try:
# Realizar la solicitud
with urllib.request.urlopen(req) as f:
response = f.read().decode('utf-8')
response_json = json.loads(response)
print("Respuesta de la API:")
print(response_json) # Imprimir la respuesta de la API
return response_json
except Exception as e:
print("Error al establecer las propiedades de la pregunta:", e)
# Utilización de la función get_question_properties para obtener las propiedades de la pregunta Q00
session_key = "~SyMLnQBSwHIKI9kdnG80HAEiJAsCryf"
survey_id = 422613 # ID del formulario
question_id = '1' # ID de la pregunta Q00
question_properties = get_question_properties(session_key, survey_id, question_id)
# Modificar las opciones de respuesta si las propiedades se obtienen correctamente
if question_properties:
if 'result' in question_properties and 'answeroptions' in question_properties['result']:
answer_options = question_properties['result']['answeroptions']
if 'AO01' in answer_options and answer_options['AO01']['answer'] == 'Miguel Angel':
answer_options['AO01']['answer'] = 'Andres' # Cambiar 'Miguel Angel' por 'Andres'
# Utilización de la función set_question_properties para aplicar los cambios
if 'result' in question_properties and 'qid' in question_properties['result']:
question_id = question_properties['result']['qid']
response = set_question_properties(session_key, survey_id, question_id, {"answeroptions": answer_options})
print("Resultado de la modificación de las opciones de respuesta:")
print(response) # Imprimir la respuesta de la API
me arroja resultado de error en questionID, no entiendo por qué sabiendo que estoy dando las credenciales correctas
me pueden decir por favor un enfoque diferente para hacer lo que quiero y gracias.