Python跨多行分析文本

2024-04-18 03:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要处理一个文本文件,其中数据的格式如下:

<emptyline> 
Recno:: 0
URL:: http://domain1.com/

ParseText::
Home - 360° Virtualisi...

Recno:: 1
URL:: http://domain2.com/

ParseText:: 
IIS Windows Server

Recno:: 2 
URL:: http://domain3.com/

ParseText::
ArrowECS Israel. Grow . ...

...

好消息是格式是一致的,记录总是

  1. 空行
  2. 从记录编号开始
  3. 第二行是URL
  4. 然后是一条空线
  5. ParseText::行
  6. 文本行和

首先,我真的不知道这是不是像XML,JSON之类的标准。。。你知道吗

第二,如果是这样的话,如何将其转换为json?它不是那么简单,我必须编写一个定制的解析器。你知道吗


Tags: 数据comhttpurlhome格式记录iis
1条回答
网友
1楼 · 发布于 2024-04-18 03:25:42

您只需逐行读取并向列表中添加条目:

records = []
with open("filename") as f:
    while True:
        if f.readline() == '': break # break if file is empty
        recno = f.readline().split(":: ")[1]
        url = f.readline().split(":: ")[1]
        f.readline()
        f.readline() # ParseText:: 
        parsetext = f.readline()
        records.append({
            "url": url,
            "recno": recno,
            "parsetext": parsetext,
            })

如果需要将其作为JSON,可以使用json.dumps对其进行编码:

import json
print(json.dumps(records))

只要文件和您描述的完全一样,这应该是可行的。你知道吗

相关问题 更多 >