Впервые в своей жизни я работаю с Python, и у меня возникла проблема, которую я не могу найти, как ее решить, поэтому я постараюсь быть ясным, чтобы объяснить себя как можно лучше и прочитать их комментарии.Я помещаю их в контекст.Я делаю микросервис, который должен возвращать атрибуты объекта.Визуализация микросервиса должна быть в формате JSON.
Я провел несколько тестов (ни один из них для меня не работает).Во-первых, процедура Oracle Store для возврата XML, потому что я хотел бы, чтобы sp-код был более динамичным.Я не знаю, как взять эту выходную переменную и преобразовать ее в JSON внутри самого Oracle.Или, если я не могу, я хотел бы знать, может ли эта выходная переменная быть преобразована в JSON с Python
Другой, который мне не очень нравится, является создание " JSON"форматировать в SP и вернуть varchar этого содержимого.
Второй вариант, когда я генерирую JSON, пакет делает это:
PROCEDURE get_attributes (p_element IN VARCHAR2, p_list OUT CLOB) AS
str_json_inicial VARCHAR2(100) := '{';
str_json_final VARCHAR2(100) := '"}';
str_json1 VARCHAR2(100) := '"role":"';
str_json2 VARCHAR2(100) := '","identification":"';
str_json3 VARCHAR2(100) := '","class":"';
str_json4 VARCHAR2(100) := '","country":"';
str_json5 VARCHAR2(100) := '","stateOrProvince":"';
str_json6 VARCHAR2(100) := '","city":"';
str_json7 VARCHAR2(100) := '","locality":"';
str_json8 VARCHAR2(100) := '","streetName":"';
str_json9 VARCHAR2(100) := '","streetNr":"';
str_json10 VARCHAR2(100) := '","x":"';
str_json11 VARCHAR2(100) := '","y":"';
respuesta CLOB;
BEGIN
select
TO_CLOB(str_json_inicial
|| str_json1
|| 'completarRol'
|| str_json2
|| id_equipo_gis
|| str_json3
|| 'completarClass'
|| str_json4
|| pais
|| str_json5
|| provincia
|| str_json6
|| partido
|| str_json7
|| localidad
|| str_json8
|| calle
|| str_json9
|| altura
|| str_json10
|| poste_x
|| str_json11
|| poste_y
|| str_json_final)
into p_list
from xxy_osf_equ_equipos
where id_equipo_gis = p_element;
EXCEPTION WHEN NO_DATA_FOUND then
BEGIN
p_list := to_clob('{}');
END;
WHEN OTHERS then
BEGIN
p_list := to_clob('{ERROR}');
END;
END get_attributes;
В обоих случаях у меня нетИдея, как заставить это работать.
Я дам вам несколько примеров строк Python первого сервиса, который я сделал, который работает для меня, но это очень сложный код.
listOutput = cur.var(cx_Oracle.CURSOR)
l = cur.callproc('relationships.get_relationships', (elementId, listOutput))
cur = database.db.cursor()
result = []
for cur in listOutput.getvalue().fetchall():
result.append({
'identification': cur[0],
'elementRole': cur[1],
'direction': cur[2],})
return result
гдеlistOutput - это переменная типа курсора oracle, и я размещаю теги JSON.
У кого-нибудь есть идеи, предложения или рекомендации?