gpt4 book ai didi

javascript - JS和Python之间如何通信?

转载 作者:行者123 更新时间:2023-12-04 09:43:43 26 4
gpt4 key购买 nike

我制作了一个 Discord 机器人,我想在其中添加牛津词典 API。
因此,如果您输入“!find word-to-search ”,机器人将返回单词的含义。

我已经做了几乎所有事情,我有一个 python 脚本,它接受一个字符串输入并返回它的含义。
而且,我有一个 JS 文件,它接受用户输入,然后做出相应的响应。

我想要做的是,在 JS 文件中获取用户输入,将其发送到 python 文件,该文件返回单词的含义。

我正在使用 Heroku 通过机器人托管

我需要你的帮助,让我知道如何从 bot.js 发送输入字符串至trying.py然后从 trying.py 返回一个字符串数组至bot.js

这两个文件的代码是:

trying.py

import requests
import json


app_id = 'my-app-id'
app_key = 'my-app-key'

language = 'en-gb'
word_id = 'Hello'
fields = 'definitions'
strictMatch = 'false'

url = 'https://od-api.oxforddictionaries.com:443/api/v2/entries/' + language + '/' + word_id.lower() + '?fields=' + fields + '&strictMatch=' + strictMatch;

r = requests.get(url, headers = {'app_id': app_id, 'app_key': app_key})

theListOfMeanings = r.json()

if 'error' in theListOfMeanings:
print("Sorry, I couldn't find ",word_id," in the dictionary\nPlease check the spelling")
else:
counter=1
print("The different meanings of",word_id," are -")
for j in theListOfMeanings['results']:
for x in j['lexicalEntries']:
for i in (x['entries'][0]['senses']):
print(counter,". "," ".join(i['definitions']))
counter+=1

Bot.js
const Discord = require('discord.js');
const client = new Discord.Client();
const auth = require('./auth.json') //TEMPORARY


client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});

client.on('guildMemberAdd', member => {
member.guild.channels.get('channelID').send("Welcome");
});

client.on('message', msg => {
theMessage = msg.content
if (msg.content === '!hello') {
msg.reply('Hii ! :grin:');
}
else if (theMessage.slice(0, 5) === '!find'){
msg.reply('Hi, my name is Norm :neutral_face:')
//theMessage.pop(0)
theMessage = theMessage.substring(5);
msg.reply(theMessage);

}
});
client.login(auth.token);

我同意在 JS 中重新编码 python 脚本将是一个好主意。
但是,问题在于, Oxford 上的 node.js 代码可用。返回一个输出,我不知道如何管理。
上面的链接中提供了 node.js 代码(try.py 的替换),它的输出对我来说是这样的:
chaotic output

如果有人能告诉我如何使用返回的 JS 代码,我将不胜感激。

OXFORD API 代码(Node.js(try.py 的替代品))
const http = require("https");

const app_id = "my_app_id"; // insert your APP Id
const app_key = "my_app_key"; // insert your APP Key
const wordId = "ace";
const fields = "pronunciations";
const strictMatch = "false";

const options = {
host: 'od-api.oxforddictionaries.com',
port: '443',
path: '/api/v2/entries/en-gb/' + wordId + '?fields=' + fields + '&strictMatch=' + strictMatch,
method: "GET",
headers: {
'app_id': app_id,
'app_key': app_key
}
};

http.get(options, (resp) => {
let body = '';
resp.on('data', (d) => {
body += d;
});
resp.on('end', () => {
let parsed = JSON.stringify(body);

console.log(parsed);
});
});

最佳答案

通过使用 node-fetch 在 JS 中重新编码程序,在评论中解决了问题。 npm 模块。

关于javascript - JS和Python之间如何通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62214071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com