Export/convert Dialogflow 代理到 csv 或 excel 文件使用 python

Export/convert Dialogflow agent to csv or excel file using python

如何将所有问题和答案导出到 csv 或 excel 文件?

我已将 dialogflow 代理导出到 zip 文件中,并且每个问题或意图都有两个 json 文件。

有什么方法可以在 csv 或 excel 文件中创建问答对吗?

zip 文件包含两个目录 intents 和 entities。意图目录包含 Dialogflow 每个意图的响应和训练短语。您可以观察 JSON 文件中的模式并编写脚本以从中生成 csv 文件。

import os
import csv
import json

all_intents = os.listdir('intents')


with open('agent.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(["Response", "Questions"])
    for intent in all_intents:
        write = []
        if intent.find('_usersays_en.json') == -1:
            try:
                with open('intents/' + intent) as f:
                    data = json.load(f)
                    resp = ''
                    try:
                        resp = data['responses'][0]['messages'][0]['speech'][0]
                    except:
                        print(intent)
                    write.append(resp)
            except:
                print(intent)
            try:
                with open('intents/' + intent.replace(".json", "") + '_usersays_en.json') as f:
                    data = json.load(f)
                    for d in data:
                        qn = (d['data'][0]['text'])
                        write.append(qn)
            except:
                print(intent.replace(".json", "") + '_usersays_en.json')
            writer.writerow(write)

运行代码说明:

  1. 将代理导出为 zip。
  2. 解压缩文件。您将看到从 zip 中提取的实体和意图目录。
  3. 将此 python 文件和 intents 目录放在同一目录中。
  4. 运行 python3 filename.py(包含代码的文件名)。
  5. agent.csv 将被创建。
  6. 所有没有响应或训练短语的意图都将显示在终端上。