【问题标题】:How to convert the extracted text from PDF to JSON or XML format in Python?如何在 Python 中将提取的文本从 PDF 转换为 JSON 或 XML 格式?
【发布时间】:2018-10-06 03:52:32
【问题描述】:

我正在使用 PyPDF2 从 PDF 文件中提取数据,然后转换为文本格式?

文件的PDF格式如下:

Name : John 
Address: 123street , USA 
Phone No:  123456
Gender: Male 

Name : Jim 
Address:  456street , USA 
Phone No:  456899
Gender: Male 

在 Python 中,我使用以下代码:

import PyPDF2
pdf_file = open('C:\\Users\\Desktop\\Sampletest.pdf', 'rb')
read_pdf = PyPDF2.PdfFileReader(pdf_file)
number_of_pages = read_pdf.getNumPages()
page = read_pdf.getPage(0)
page_content = page.extractText()
page_content

这是我从 page_content 得到的结果:

 'Name : John \n \nAddress: 123street , USA \n \nPhone No:  123456\n \nGender: Male \n \n \nName : Jim \n \nAddress:  456street , USA \n \nPhone No:  456899\n \nGender: Male \n \n \n'

如何将其格式化为 JSON 或 XML 格式,以便可以在 SQL Server 数据库中使用提取的数据。

我也尝试过使用这种方法

import json
data = json.dumps(page_content)
formatj = json.loads(data)
print (formatj)

输出:

Name : John 
Address: 123street , USA 
Phone No:  123456
Gender: Male 

Name : Jim 
Address:  456street , USA 
Phone No:  456899
Gender: Male 

这与我的 word 文件中的输出相同,但我认为这不是 JSON 格式。

【问题讨论】:

  • 你在哪里运行这段代码?在 REPL 中?您是否尝试过print(page_content)?在一行中单独包含一个变量不会在脚本中产生任何输出
  • 到目前为止你有什么尝试?

标签: python json xml pypdf2


【解决方案1】:

不是很漂亮,但我认为这样可以完成工作。你会得到一个字典,然后由 json 解析器以漂亮、漂亮的格式打印出来。

import json    

def get_data(page_content):
    _dict = {}
    page_content_list = page_content.splitlines()
    for line in page_content_list:
        if ':' not in line:
            continue
        key, value = line.split(':')
        _dict[key.strip()] = value.strip()
    return _dict

page_data = get_data(page_content)
json_data = json.dumps(page_data, indent=4)
print(json_data)

或者,而不是最后 3 行,只需这样做:

print(json.dumps(get_data(page_content), indent=4))

【讨论】:

  • 感谢@UtahJarHead 的回答,但似乎我只能提取其中一个人员信息。就我而言,我得到了这个输出。 {“姓名”:“吉姆”,“地址”:“456street,美国”,“电话号码”:“456899”,“性别”:“男性”}
  • 对。我创建的功能,你将不得不挑选每个单独的部分。例如,每次看到 "Name:" 时,您都会抓取收集到的内容并将其推送到 get_data() 函数,对其进行处理,然后前往获取下一个人的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 2023-03-10
  • 2011-07-04
相关资源
最近更新 更多