Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将文档节拆分为列表以导出Python_Sql_Python 3.x_Parsing_Document - Fatal编程技术网

Sql 将文档节拆分为列表以导出Python

Sql 将文档节拆分为列表以导出Python,sql,python-3.x,parsing,document,Sql,Python 3.x,Parsing,Document,我对Python非常陌生,我正在尝试将一些法律文档分成几个部分,以便导出到SQL中。我需要做两件事: 通过目录定义章节编号,以及 根据定义的章节编号,拆分文档 目录列出了章节编号:1.1、1.2、1.3等 然后,文档本身被这些节号分解: 1.1“……文本……”, 1.2“……文本……”, 1.3“…文本…”等 类似于一本书的章节,但以升序小数分隔 我已经使用Tika解析了文档,并且我已经能够使用一些基本正则表达式创建一个节列表: import tika import re from tika

我对Python非常陌生,我正在尝试将一些法律文档分成几个部分,以便导出到SQL中。我需要做两件事:

  • 通过目录定义章节编号,以及
  • 根据定义的章节编号,拆分文档
  • 目录列出了章节编号:1.1、1.2、1.3等

    然后,文档本身被这些节号分解: 1.1“……文本……”, 1.2“……文本……”, 1.3“…文本…”等

    类似于一本书的章节,但以升序小数分隔

    我已经使用Tika解析了文档,并且我已经能够使用一些基本正则表达式创建一个节列表:

    import tika
    import re
    
    from tika import parser
    parsed = parser.from_file('test.pdf')
    content = (parsed["content"])
    
    headers = re.findall("[0-9]*[.][0-9]",content)
    
    现在我需要这样做:

    splitsections = content.split() by headers
    
    var_string = ', '.join('?' * len(splitsections))
    query_string = 'INSERT INTO table VALUES (%s);' % var_string
    cursor.execute(query_string, splitsections)
    
    对不起,如果这一切都不清楚。这还是很新鲜的

    如果您能提供任何帮助,我们将不胜感激

    “test.pdf”将是这样的文档:


    目录在第一页到第三页(这是你得到章节号的地方)。然后,我想拆分的文本从第20页开始(第2.1节)

    除了最后一个带DB的部件外,所有部件都经过了测试。代码也可以改进,但这是另一项任务。主要任务完成了

    在列表
    split_content
    中有您想要的所有信息(即2.1和2.2之间的文本,然后是2.2和2.3之间的文本,依此类推,不包括节本身的num+名称(即不包括
    2.1 Continuation
    2.2 name
    等等)

    我将
    tika
    替换为
    PyPDF2
    ,因为
    tika
    没有提供此任务所需的工具(即,我没有找到如何提供我需要的页面数量并获取其内容)

    如何使用:(可能的方法之一):

    1) 将上述代码保存在
    my\u pdf\u code.py
    2) 在python shell中:

    import path.to.my_pdf_code as the_code
    the_code.get_pdf_content('/home/username/Apollo_Investment_Fund_VIII_LPA_S1.pdf', 2, 4, 24, '[Signature Page Follows]')
    

    非常感谢您的回复!我在上面的文档中添加了一个链接,表示“test.pdf”的外观。标题将在第一至第三页(2.1、2.2等)的目录中定义。然后,要分解的内容从第20页开始(第2.1节)。@junkbond916。是否要在节号之间获取文本片段?据我所知,您希望从第20页开始,以获得第2.1节和第2.2节之间的文本,然后是第2.2节和第2.3节之间的文本,依此类推。那么每一篇文章\每一章都是一样的。。。(根据第11.16节)。我说得对吗?如果是这样,那就不是一件容易的事情:)正如我从你的
    re
    中看到的,你只得到了节号,但是在这种情况下,没有节名的节号是无用的。需要考虑如何解决它。嗨,泰坦-你搞定了。这正是我想要做的。是的,我上面的代码只生成一个数字列表。最好使用整个章节名称(即“2.1续篇”)来打破文件。这真是个谜。再次感谢您的关注。我真的很感激。@junkbond916,我为你写了一段代码。对于未来-下次请尽可能多做,因为当有人需要做作者的工作时,
    stackoverflow
    不欢迎这样的事情。不要忘记接受答案(在我的答案前面的两个向上/向下箭头下有一个灰色复选标记)。非常感谢-感谢您的帮助和建议。
    import path.to.my_pdf_code as the_code
    the_code.get_pdf_content('/home/username/Apollo_Investment_Fund_VIII_LPA_S1.pdf', 2, 4, 24, '[Signature Page Follows]')