python - 在输入时输入python,在更改输入时重新运行代码
问题描述
我正在尝试使用弹性搜索中的一些数据创建一个自动完成演示。我有一个简单的代码,它接受输入,然后返回推荐的自动完成列表。
while True:
search = input("start typing")
body = {
"size": 5,
"query": {
"multi_match": {
"query": "'"+search+"'"
}
}
}
res = es.search(index="autocomplete", body=body) //getting the suggestions
for hit in res['hits']['hits']:
doc = hit["_source"]["company_name"]
print(doc) //printing the suggestions
现在它的工作原理是这样的:假设我想搜索“Google”。终端会说start typing!
,我会输入“G”,按回车,我会得到一个自动完成建议列表,然后它会说start typing!
,我会输入“Go”并得到一个新的建议列表,然后下次我输入“Goo”等只是想看看当我输入越来越多的单词时自动完成建议如何变化。
我想把它放到哪里,如果我输入或更改任何内容,它会自动运行自动完成代码,所以我可以输入“G”,它运行,然后我输入“o”,将它添加到之前的“G”所以它运行“Go”,然后我输入另一个“o”、“g”、“l”、“e”。基本上我希望它像谷歌搜索的正常自动完成一样运行,当你继续输入时,它会更新建议。有没有办法在python中做到这一点?
解决方案
如果我输入或更改任何内容,我想将它带到哪里,它会自动运行自动完成代码
不,在 Python 中没有开箱即用的方法可以做到这一点。input
和都raw_input
要求用户按Enter
。以下是一些讨论可能解决方案的 StackOverflow 帖子:
您选择的解决方案将取决于您是否需要跨平台支持。
推荐阅读
- c++ - NAPI 模块在 Windows 上出现 LNK2019 错误
- angular - (新鲜的角度项目)当我将模块导入独立的功能模块时,main.js 文件的大小会增加
- python - 在python django中获取前几个月的数据
- elasticsearch - ApacheManifoldCF elasticsearch 输出连接器版本兼容性
- sql-server - Report Builder 3.0 在参数中使用多个值不适用于 IN 语句
- javascript - 在 Nuxt.js 中使用 Vue-Meta 内联 Js
- zeep - zeep.exceptions.XMLSyntaxError:找到的根元素是 html
- security - 在 ASP.NET Core 中处理错误的礼品卡密钥/密码尝试的最佳策略
- python - 如何使用 python 访问电子表格
- r - 如何加入整洁的数据集并合并列