googleapis / googleapis/google-cloud-python
response_result.response_messages.payloads is in protobuf; serialize to json?
- Lenguaje dominante
- Python
- Estrellas
- 5.4k
- Forks
- 1.8k
- Merge medio
- 3 d 4 h
- PR fusionados (30 d)
- 122
Descripción
Thanks for stopping by to let us know something could be better!
per support Case: 29062259 (Serialize a (json) protobuf object)
**your feature request related to a problem**
When session_client.detect_intent(request=request) returns response_result, from which you can get custom "payloads" that you defined in a DialogFlow Page. However, while what your input is in json, what you get in response_result.response_messages.payloads is in protobuf. It is inconvenient to access the parameters you defined in payloads (json) with protobuf.
** solution **
It will be very beneficial to have a seriallizer to convert the protobuf back to the original json format.
I wrote a serialize function that could convert protobuf to json:
```
def parse_protomap(value):
if isinstance(value, RepeatedComposite):
obj = []
for v in value:
o = {}
for k in v:
o[k] = parse_protomap(v[k])
obj.append(o)
elif isinstance(value, MapComposite):
obj = {}
for v in value:
obj[v] = parse_protomap(value[v])
else:
obj = value
return obj
```
to call it:
for r in response_result.response_messages:
if r.payload != None:
payloads = parse_protomap(r.payload)
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.