使用 QuickFIX 获取收到的 FIX 消息的所有现有字段

Sie*_* Oy 5 python quickfix fix-protocol

QuickFIX 是否提供在单个步骤中获取传入 FIX 消息的所有现有字段的可能性?(我为 Python 使用 1.14.3 版。)

根据 QuickFIX 文档,可以通过某种方式获取字段值:

price = quickfix.Price()
field = message.getField(price)
field.getValue()
Run Code Online (Sandbox Code Playgroud)

各种消息类型包含不同的字段,因此对每个字段都这样做会很尴尬。此外,有时不知道消息中是否存在某些字段。如何在不知道消息包含哪些字段的情况下获取消息的所有字段?

Wap*_*iti -1

我不知道有什么方法。message这就是我对传入的 FIX 消息所做的操作:

tags = re.findall(r'(?<=\x01).*?(?==)', str(message))

然后,where FIX = {'1':fix.Account(), '2':fix.AdvId(), ...},你可以通过做得到所有的值

for tag in set(tags)&set(FIX.keys()):
    message.getField(FIX[tag])
Run Code Online (Sandbox Code Playgroud)

显然您必须导入该re模块。