我需要像这样阅读快速消息MT103:
{1:F01AAAAGRA0AXXX0057000289}
{2:O1030919010321BBBBGRA0AXXX00570001710103210920N}
{3:{108:MT103 003 OF 045}{121:c8b66b47-2bd9-48fe-be90-93c2096f27d2}}
{4:
:20:5387354
:23B:CRED
:23E:PHOB/20.527.19.60
:32A:000526USD1101,50
:33B:USD1121,50
:50K:FRANZ HOLZAPFEL GMBH
VIENNA
:52A:BKAUATWW
:59:723491524
C. KLEIN
BLOEMENGRACHT 15
AMSTERDAM
:71A:SHA
:71F:USD10,
:71F:USD10,
:72:/INS/CHASUS33
-}
{5:{MAC:75D138E4}{CHK:DE1B0D71FA96}}
使用python(或R)导入结构化表。
过去有人遇到过同样的问题吗?
感谢您的帮助。
最佳答案
您看过this PyPi库吗?根据传单,它承诺您可以读取MT103文件并将其解析为本地Python对象。似乎不会比这容易得多吗?
[编辑]
在以下代码示例中,我使用PyPi(sudo pip install mt103
)为自己尝试了mt103库。但是,我手头没有有效的mt103示例文件,因此我得到了一些虚拟数据。除了我的文件没有bank_operation_code之外,这似乎有点用。请注意,但是提供有效但不正确的字符串时,我没有出现错误。该库不检查mt103的有效性。它显示初始化后检查对象时仅发现text和header属性为空。
from mt103 import MT103
with open('mtfile', 'r') as myfile:
mt103=myfile.read().replace('\n', '')
mt_text = MT103(mt103)
print("basic header: {}, bank op code: {}, complete message: {}".format(
mt_text.basic_header,
mt_text.text.bank_operation_code,
mt_text.raw
))
获得对象并且有效之后,您应该能够弄清楚如何将其放入指定的表格中。