簡體   English   中英

Python跨多行解析文本

[英]Python Parse Text Across Multiple Lines

我有一個文本文件,我需要處理以這種方式格式化數據的位置:

<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. 第二行是網址
  4. 然后是空行
  5. ParseText ::行,
  6. 文字行和

首先,我真的不知道這是否是XML,JSON等任何類型的標准...

其次,如果是這樣,如何將其轉換為json? 它不是那么簡單,我必須編寫一個自定義的解析器。

您可以逐行閱讀並將條目添加到列表中:

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))

只要文件與您所描述的完全相同,它就應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM