Python3-生成具有相同键名的关联数组
请考虑下面的循环,它循环浏览PDF中的每个页面,读取文本,然后将PDF页面进一步划分为使用过的定义列位置: 列位置的定义如下(通过命令行): 这是我的剧本:Python3-生成具有相同键名的关联数组,python,json,python-3.x,Python,Json,Python 3.x,请考虑下面的循环,它循环浏览PDF中的每个页面,读取文本,然后将PDF页面进一步划分为使用过的定义列位置: 列位置的定义如下(通过命令行): 这是我的剧本: npages=2#PDF中的页数。 列={} 对于范围内的n(n页): 对于i,枚举中的列(列): out=[…]#PDF页面中定义的列区域内的特定文本 列[i+1]=({“行”:str(out)}) 现在,考虑一下我有一个两页长的PDF文件。它包含以下文本: 第1页: 第2页: 目前,我的代码将输出如下: { "1":{
npages=2#PDF中的页数。
列={}
对于范围内的n(n页):
对于i,枚举中的列(列):
out=[…]#PDF页面中定义的列区域内的特定文本
列[i+1]=({“行”:str(out)})
现在,考虑一下我有一个两页长的PDF文件。它包含以下文本:
第1页: 第2页: 目前,我的代码将输出如下:{
"1":{
"row":"Page 2 \u2013 Col 1.\n\n\f"
},
"2":{
"row":"Page 2 \u2013 Col 2\n\n\f"
}
}
理想情况下,我想做的是生成一个JSON输出,如下所示:
{
"1":[
{
"row":"Page 1 Col 1 Text"
},
{
"row":"Page 2 Col 1 Text"
}
],
"2":[
{
"row":"Page 1 Col 2 Text"
},
{
"row":"Page 2 Col 2 Text"
}
],
}
因此,基本上,列的边界将在所有页面上共享-并且必须将每个列的内容添加到正确的列索引中,并且在每个\n
新的out
行上,它应该进一步添加到列索引中的行
索引中
Python3甚至可以做到这一点吗?我是否最好保存PDF文件的文本内容,然后根据文件夹中的每个文件创建JSON字符串?假设示例中的所有内容都有效-使用for
列
并附加您的信息:
import collections
column = collections.defaultdict(list)
for n in range(npages):
for i, col in enumerate(COLUMNS,1):
out = [...] #The specific text from the PDF page, inside the defined column area
column[i].append({"row": str(out)})
你能提供一个更好的例子吗?例如,我正在考虑将PDF中的文本转储到
str
中,并以此为起点编写代码。获得帮助会容易得多。@norok2我正在测试的实际PDF文件实际上包含了我在示例中编写的内容(page 1col 1text page 1col 2text\n page 2col 1text page 2col 2text
)刚刚看到了它!它工作得很好-我已经在这上面敲了两天了。谢谢只有一件事-如果字符串拆分为新行,我如何能够在列索引中动态添加新的行
<代码>\n。基本上,我想做的是创建解析字符串并创建一个“类似于表的输出”只是一个想法:在for I,col
循环中创建一个循环有意义吗?类似于新行输入输出的:
,然后在这个循环中,附加行:str(out)
?听起来像是一个新的/不同的问题,它不清楚,最好探索一下,然后问另一个问题。如果在我的原始问题中不清楚,很抱歉,但我确实包含了它。但无论如何,谢谢你,你的代码真的帮助了我!:)我认为这是一个每个问题一个问题的网站,但我可能是错的。
{
"1":{
"row":"Page 2 \u2013 Col 1.\n\n\f"
},
"2":{
"row":"Page 2 \u2013 Col 2\n\n\f"
}
}
{
"1":[
{
"row":"Page 1 Col 1 Text"
},
{
"row":"Page 2 Col 1 Text"
}
],
"2":[
{
"row":"Page 1 Col 2 Text"
},
{
"row":"Page 2 Col 2 Text"
}
],
}
import collections
column = collections.defaultdict(list)
for n in range(npages):
for i, col in enumerate(COLUMNS,1):
out = [...] #The specific text from the PDF page, inside the defined column area
column[i].append({"row": str(out)})