从Dialogflow的detect_intent
API调用中收到以下响应。如何遍历响应结构并提取string_value
条目?
我正在使用python。寻找一种适用于各种数据结构的解决方案。如果找不到string_value
,则返回null /错误。
响应请求:
response = session_client.detect_intent(session=session, query_input=query_input)
响应示例:
fields {
key: "google"
value {
struct_value {
fields {
key: "expectUserResponse"
value {
bool_value: false
}
}
fields {
key: "richResponse"
value {
struct_value {
fields {
key: "items"
value {
list_value {
values {
struct_value {
fields {
key: "simpleResponse"
value {
struct_value {
fields {
key: "textToSpeech"
value {
string_value: "<speak>Welcome to Your App. To get started, login with your ID on your Google Home app.</speak>"
}
}
}
}
}
}
}
}
}
}
}
}
}
fields {
key: "userStorage"
value {
string_value: "{\"data\":{\"id\":\"YzA3MmNiNWEtMWI1Ny00NTMzLTlhN2EtYmJlZmQ1NDQ0MzMw\"}}"
}
}
}
}
}
答案 0 :(得分:0)
可以使用Google的协议缓冲区来解析响应:
示例:
response.query_result.webhook_payload.get_or_create_struct('google').get_or_create_struct('richResponse').get_or_create_list('items')[0].get_or_create_struct('simpleResponse').fields['textToSpeech'].string_value