googleapis / googleapis/google-cloud-python

response_result.response_messages.payloads is in protobuf; serialize to json?

オープン
#16,444 コメント 2 件 リアクション 0 件 担当者 1 名 @balajismaniam に割り当て済み GitHub で見る
api: dialogflow type: feature request
主要言語
Python
スター
5.4k
フォーク
1.8k
平均マージ
3日 4時間
マージ済み PR(30日)
122

説明

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)

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。