我从GoogleCloudOCR得到了一些奇怪的JSON格式,它没有引号、冒号和逗号。
text_annotations {
description: ","
bounding_poly {
vertices {
x: 485
y: 237
}
vertices {
x: 492
y: 237
}
vertices {
x: 492
y: 266
}
vertices {
x: 485
y: 266
}
}
}
有什么简单的方法来解析它,或者将它格式化为JSON吗?
我试过手工添加引号、冒号和逗号,但这不是最好的方法。
使用python代码获取这些数据:
from google.cloud import vision
import io
client = vision.ImageAnnotatorClient()
feature = vision.Feature(
type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION)
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision.Image(content=content)
response = client.text_detection(image=image)
print(response)
1条答案
按热度按时间f4t66c6m1#
好吧,做一个自定义解析器可能是大材小用,但是这个潜在的简单,快速和肮脏的黑客:如果换行符和缩进等是稳定的,你可以做一个搜索+替换这些(通过工具,因为这样可以自动化并且还执行多次替换)以用“
,\n "bounding_poly": [
“替换“\n bounding_poly
“的形式,其将逗号添加到前一行,将冒号添加到关键字,将引号添加到关键字,将其内容转换为数组(然后您也可以删除"vertices"
,这样它们就成为数组中的匿名对象,作为数组的元素)。请注意换行符编码的差异(\n
、\r\n
、\r
)。理想情况下,还可以识别这些搜索字符串中是否有一个匹配零次,或者尝试将最终结果读取为JSON以检查错误消息。
不是很好,但可能足够了?或者源有更多的变化或者它更动态/不稳定?