我的问题String
# -*- coding: utf-8 -*-
print ("################################")
foo = "??142?.0000"
print (type(foo))
print("foo: "+foo)
foo_l = []
foo_l.append(foo)
print ("List: " )
print (foo_l)
print ("List decode: ")
print([x.decode("UTF-8") for x in foo_l])
print("Pop: "+foo_l.pop())
Run Code Online (Sandbox Code Playgroud)
打印结果:
################################
<type 'str'>
foo: ??142?.0000
List:
['\xd0\xa1\xd0\xa2142\xd0\x9d.0000']
List decode:
[u'\u0421\u0422142\u041d.0000']
Pop: ??142?.0000
Run Code Online (Sandbox Code Playgroud)
这很好用,我只需用键盘手写字符串"CT142H.0000"(其代码相同)
print ("################################")
foo = "CT142H.0000"
print(type(foo))
print("foo: "+foo)
foo_l = []
foo_l.append(foo)
print ("List: ")
print (foo_l)
print ("List decode: ")
print([x.decode("UTF-8") for x in foo_l])
print("Pop: "+foo_l.pop()) …Run Code Online (Sandbox Code Playgroud) 我遇到了 Camelot 库的问题
我正在从 PDF 中提取数据,我的代码在前 23 页中运行“正常”,但在本例中,它无法解析文本/表格结尾
我想问题是字符串太长到达表格边界
也尝试过“流”但得到最差的结果
PDF源数据
PDF 输出布局
我解析的输出就像
"ALT4945\n24 V"
"70\/140 A ALT5860\n12 V\n90 A"
Run Code Online (Sandbox Code Playgroud)
期望的输出应该是
"ALT4945\n24 V 70\/140 A"
"ALT5860\n12 V\n90 A"
Run Code Online (Sandbox Code Playgroud)
我的第一个在上一页正确工作的代码是
tables = camelot.read_pdf("CROSSREFERENCE.pdf", pages=wPAGES, flavor="lattice")
Run Code Online (Sandbox Code Playgroud)
从网站 Camelot Doc https://camelot-py.readthedocs.io/en/master/api.html我得到了 pdf 解析器的可能配置。
"" PARAMS for lattice
line_scale (default: 15)
copy_text ((default: None))
shift_text (default: ['l', 't'])
line_tol (default: 2)
joint_tol (default: 2)
threshold_blocksize (default: 15)
threshold_constant (default: -2)
iterations (default: 0)
resolution (default: 300)
"""
Run Code Online (Sandbox Code Playgroud)
然后我遇到了这个问题,尝试用更多参数解决“玩”问题,但没有找到获胜者
tables = camelot.read_pdf("CROSSREFERENCE.pdf", pages=wPAGES, …Run Code Online (Sandbox Code Playgroud)