簡體   English   中英

解析奇怪的類似 JSON 的格式

[英]Parsing strange JSON-like format

我從 Google Cloud OCR 得到了一些奇怪的類似 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)

好吧,制作一個自定義解析器可能有點矯枉過正,但是這個可能簡單、快速且骯臟的 hack 呢:如果換行符和縮進等是穩定的,你可以對這些進行搜索 + 替換(通過工具,因為這樣可以自動化和也執行多次替換),形式是將“ \n bounding_poly ”替換為“ ,\n "bounding_poly": [ ”,其中將逗號添加到上一行,將冒號添加到鍵,將引號添加到鍵,轉它的內容放入一個數組中(然后你也擺脫了"vertices" ,所以它們成為數組內的匿名對象作為數組的元素)。 請注意換行符編碼差異( \n\r\n\r )。

理想情況下,還可以識別這些搜索字符串之一是否匹配零次,或者嘗試將最終結果讀取為 JSON 以檢查錯誤消息。

不是很好,但也許足夠了? 或者來源有更多差異還是更動態/不穩定?

最后我只是按照人們在評論中提出的那樣做了,並使用 API 以更有用的格式打印數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM