假设我有一个名为 的模型Item,其中包含一个 JSONB 字段data。其中一条记录存储了以下 JSON 对象:
{
"name": "hello",
"nested_object": {
"nested_name": "nested"
},
"nested_list": [
{
"nested_key": "one"
},
{
"nested_key": "two"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我可以通过对name字段进行过滤来找到此记录:
Session().query(Item).filter(Item.data["name"] == "hello")
Run Code Online (Sandbox Code Playgroud)
我可以通过同样过滤嵌套对象来找到此记录:
Session().query(Item).filter(Item.data[("nested_object","nested_name")] == "hello")
Run Code Online (Sandbox Code Playgroud)
但是,我正在努力通过过滤存储在嵌套列表中的项目的值来寻找找到此记录的方法。换句话说,如果用户提供了值“一”,我想找到上面的记录,并且我知道要nested_key在nested_list.
是否可以使用可用的 SQLAlchemy 过滤器来实现这一点?
我试图用 Scapy 编写 TCP RST 攻击,但我的代码不起作用。请帮助我解决我的问题。
from scapy.all import *
def poison(packet):
packet[TCP].flags='RST'
sendp(packet)
sniff(filter='tcp',prn=poison)
Run Code Online (Sandbox Code Playgroud)
有问题flags,我想。有一个错误:
回溯(最近一次调用):
文件“Univer.py”,第 6 行,在 sniff(filter='tcp',prn=poison)
文件“/usr/lib/pymodules/python2.6/scapy/sendrecv.py”中,第 559 行,嗅探 r =
prn (p)文件“Univer.py”,第 3 行,毒包[TCP].flags='RST'
文件“/usr/lib/pymodules/python2.6/scapy/packet .py”,第 186 行,在 setattr self.setfieldval(attr,val)
文件“/usr/lib/pymodules/python2.6/scapy/packet.py”,第 175 行,在 setfieldval self.fields[attr] = any2i (self, val)
文件“/usr/lib/pymodules/python2.6/scapy/fields.py”,第 785 行,在 any2i y |= 1 << self.names.index(i)值错误:未找到子字符串