解析奇怪的JSON类格式

b5lpy0ml  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(124)

我从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)
f4t66c6m

f4t66c6m1#

好吧,做一个自定义解析器可能是大材小用,但是这个潜在的简单,快速和肮脏的黑客:如果换行符和缩进等是稳定的,你可以做一个搜索+替换这些(通过工具,因为这样可以自动化并且还执行多次替换)以用“,\n "bounding_poly": [“替换“\n bounding_poly“的形式,其将逗号添加到前一行,将冒号添加到关键字,将引号添加到关键字,将其内容转换为数组(然后您也可以删除"vertices",这样它们就成为数组中的匿名对象,作为数组的元素)。请注意换行符编码的差异(\n\r\n\r)。
理想情况下,还可以识别这些搜索字符串中是否有一个匹配零次,或者尝试将最终结果读取为JSON以检查错误消息。
不是很好,但可能足够了?或者源有更多的变化或者它更动态/不稳定?

相关问题