python - 使用python逐行解析hl7消息

标签 python

我想从文件中逐行读取我的 hl7 消息并使用 python 解析它们。我能够阅读但我的问题在于解析。它只解析文件的第一行并打印到第二行,但不会继续解析,因为它告诉我第二行不是 hl7。显示的错误是

h=hl7.parse(line)
File "C:\Python27\lib\site-packages\hl7\parser.py", line 45, in parse
plan = create_parse_plan(strmsg, factory)
File "C:\Python27\lib\site-packages\hl7\parser.py", line 88, in create_parse_plan
assert strmsg[:3] in ('MSH')
AssertionError

代码:

with open('example.txt','r') as f:
    for line in f:
       print line
       print hl7.isfile(line)
       h=hl7.parse(line)

那么如何使我的文件有效。这是 example.txt 文件

MSH|^~\&|AcmeMed|Lab|Main HIS|St.Micheals|20130408031655||ADT^A01|6306E85542000679F11EEA93EE38C18813E1C63CB09673815639B8AD55D6775|P|2.6|
EVN||20050622101634||||20110505110517|
PID|||231331||Garland^Tracy||19010201|F||EU|147 Yonge St.^^LA^CA^58818|||||||28-457-773|291-697-644|
NK1|1|Smith^Sabrina|Second Cousin|
NK1|2|Fitzgerald^Sabrina|Second Cousin|
NK1|3|WHITE^Tracy|Second Cousin|
OBX|||WT^WEIGHT||78|pounds|
OBX|||HT^HEIGHT||57|cm|

最佳答案

我遇到了类似的问题,想出了适合我的解决方案。

简而言之,将所有行放入一个对象中,然后解析该对象。 (显然,您可以清理我检查对象是否已创建的方式,但我想要一个易于阅读的示例。)

a = 0
with open('example.txt','r') as f:
    for line in f:
       if a == 0:
           message = line
           a = 1
       else:
           message += line
h=hl7.parse(message)

现在您必须根据文件的行尾值编码方式清理一些\r\n 。但它将消息视为有效,您可以随心所欲地解析。

for line in h:
    print(line)

MSH|^~\&|AcmeMed|Lab|Main HIS|St.Micheals|20130408031655||ADT^A01|6306E85542000679F11EEA93EE38C18813E1C63CB09673815639B8AD55D6775|P|2.6|
EVN||20050622101634||||20110505110517|
PID|||231331||Garland^Tracy||19010201|F||EU|147 Yonge St.^^LA^CA^58818|||||||28-457-773|291-697-644|
NK1|1|Smith^Sabrina|Second Cousin|
NK1|2|Fitzgerald^Sabrina|Second Cousin|
NK1|3|WHITE^Tracy|Second Cousin|
OBX|||WT^WEIGHT||78|pounds|
OBX|||HT^HEIGHT||57|cm|

关于python - 使用python逐行解析hl7消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787242/

相关文章:

python - 如何采取最佳行动而不是采取随机行动

python - 在 shell 中更改 PYTHONPATH

python - Pandas 在两个日期之间生成每周的第一个和最后一个工作日

python - 基于具有默认值的形状创建 DataFrame

python - python循环和字符串的语义

python - 修复错误 'slice' 错误以在单独的 Excel 单元格中添加元素列表

python - 如果程序重新启动,如何将程序的管道输出保持到 python 脚本

Python 等效于 R 的因子数据类型

python - 使用 RandomizedSearchCV 在 sklearn 中进行超参数调整需要花费大量时间

python - 'S 3' object has no attribute ' 桶'