python - 如何使用 python 在表格中读取 Swift 消息 MT103
问题描述
我需要阅读这样的快速消息 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)进入结构化表。
过去有人遇到过同样的问题吗?
感谢您的帮助。
解决方案
你见过这个 PyPi库吗?根据传单,它承诺您可以读取 MT103 文件并将其解析为原生 Python 对象。似乎不会比这更容易?[编辑]
在以下代码示例中,我使用 PyPi ( sudo pip install mt103
) 为自己尝试了 mt103 库。然而,我手头没有有效的 mt103 示例文件,所以我得到了一些虚拟数据。这似乎有点工作,除了我的文件没有bank_operation_code。但是请注意,在提供有效但不正确的字符串时,我没有收到错误。该库不检查 mt103 的有效性。它显示在初始化后检查对象时仅发现文本和标题属性为空。
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
))
在您拥有对象并且它是有效的之后,您应该能够弄清楚如何将其制成指定的表格。
推荐阅读
- amazon-eks - eks Anywhere 集群创建卡住
- jenkins - 在詹金斯中创建多个节点需要另一种方法
- ruby - 访问我的乳齿象网站时,我得到阻止域的网页
- r - 在包含 R 中日期的列中嵌套 ifelse
- google-cloud-platform - 减少 GCP 堆栈驱动程序中的警报噪音
- android - 检测何时没有视图集中在 Android 活动中
- vba - VBA OAuth:在 VBA 中获取 OAuth 代码和状态
- python-3.x - 使用嵌套屏幕管理器时,导航抽屉不会隐藏在 kivymd 中
- python - Pandas DataFrame 查找循环:for 循环不会停止运行
- angular - 为什么我会收到 Invalid target runtime 错误