我正在使用pyshark
并试图打印出来JSON
。这是我的代码:
import pyshark
import json
capture = pyshark.LiveCapture(interface='eth0', bpf_filter='http', use_json=True)
for packet in capture.sniff_continuously(packet_count=10):
print(json.loads(str(packet)))
但我得到了错误:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
此外,当简单地运行print(packet)
它不是JSON
.
更新
我试过这个:
cmd = 'tshark -i en0 -f http -T json -x -l --no-duplicate-keys'
args = shlex.split(cmd)
tshark = subprocess.Popen(args, stdout=subprocess.PIPE)
for line in io.TextIOWrapper(tshark.stdout, encoding="utf-8"):
print("test: %s" % line.rstrip())
但是打印出对象的每一行JSON
而不是一个组合对象,猜测是因为管道。这可以改变,所以我有JSON
每个数据包的实际对象吗?