如何在python中读取这个Struct对象?

2024-09-30 10:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在用dialogflow库为python编程,但是当我从尝试中获得参数列表时,它会返回一个我不知道如何读取的Struct对象。你知道吗

 fields {
  key: "apellido1"
  value {
    string_value: "Baena"
  }
}
fields {
  key: "apellido2"
  value {
    string_value: "P\303\251rez"
  }
}
fields {
  key: "nombre"
  value {
    string_value: "Rub\303\251n"
  }
}

dialogflow库的文档非常有限,没有示例。你知道吗

我只能猜测Struct来自以下路径

google.protobuf.struct_pb2

非常感谢你的帮助


Tags: 对象keyfields列表参数stringvalue编程
1条回答
网友
1楼 · 发布于 2024-09-30 10:31:50

Github上有Dialogflow示例,下面是与Python相关的示例:weather sample使用wwoapi和translation sample。不过,通常情况下,Dialogflowdocumentation讨论了如何从intent访问参数。下面是天气示例的一个片段:

import json
from flask import Flask, request, make_response, jsonify
app = Flask(__name__)
log = app.logger

@app.route('/', methods=['POST'])
def webhook():
    req = request.get_json(silent=True, force=True)

    try:
        action = req.get('queryResult').get('action')
    except AttributeError:
        return 'json error'

    if action == 'weather':
        res = weather(req)
    elif action == 'weather.activity':
        res = weather_activity(req)
    elif action == 'weather.condition':
        res = weather_condition(req)
    elif action == 'weather.outfit':
        res = weather_outfit(req)
    elif action == 'weather.temperature':
        res = weather_temperature(req)
    else:
        log.error('Unexpected action.')

    print('Action: ' + action)
    print('Response: ' + res)

    return make_response(jsonify({'fulfillmentText': res}))

def weather(req):
    parameters = req['queryResult']['parameters']
    print('Dialogflow Parameters:')
    print(json.dumps(parameters, indent=4))

    .....

相关问题 更多 >

    热门问题