如何解决在Python3中,当为Filebeats / Logstash写入Popen stdin时,如何删除二进制“ b”?
我目前正在尝试使一些Python代码使用Popen打开Filebeats子进程,处理一些数据,并将处理后的数据写入Filebeats子进程。
但是,由于Popens stdin编写/通信需要二进制而不是字符串,所以我最终也写了b
。这将导致Logstash抛出Unrecognized token 'b': was expecting ('true','false' or 'null')
的错误。
from subprocess import Popen,PIPE
filebeats_command = 'filebeat -c /etc/filebeat/filebeat.yml --path.data=my_path run'
filebeats_process = Popen(filebeats_command,stdin=PIPE)
my_processed_json_data = proc_data("somefile.txt")
filebeats_process.stdin.write(my_processed_json_data.encode('utf-8'))
是否可以删除b
?是否有更好的替代方法可以从python写入文件信号?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。