[英]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.