Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Python3-生成具有相同键名的关联数组_Python_Json_Python 3.x - Fatal编程技术网

Python3-生成具有相同键名的关联数组

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":{

请考虑下面的循环,它循环浏览PDF中的每个页面,读取文本,然后将PDF页面进一步划分为使用过的定义列位置:

列位置的定义如下(通过命令行):

这是我的剧本:

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