簡體   English   中英

如何使用 Python 將 Amazon Ion 文件轉換為 JSON 格式?

[英]How to convert Amazon Ion file to JSON format using Python?

我想將 Amazon Ion 文件從 S3 存儲桶轉換為 JSON 格式。

我正在嘗試以下代碼

import json
import boto3


s3 = boto3.resource('s3')
bucket = s3.Bucket('some/path/')
ion_body = bucket.Object('xxxxxxxxxxxxxx.ion').get()['Body'].read().decode("utf-8")
json.loads(ion_body)

但我得到以下JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)錯誤。 因為在 Ion 文件中,鍵是不帶引號聲明的。

亞馬遜 Ion 文檔說我們可以將 Ion 下轉換為 Json。 但我沒有任何辦法。 請幫我。 謝謝!

您可以使用 pyion2json

import json
import boto3
from pyion2json import ion_to_json

s3 = boto3.resource('s3')
bucket = s3.Bucket('some/path/')
ion_body = bucket.Object('xxxxxxxxxxxxxx.ion').get()['Body'].read().decode("utf-8")
print(ion_to_json(ion_body))

Ion Cookbook 有一個例子( 參考

除了 amazon.ion,您還需要安裝 jsonconversion。

對於你的情況,你會這樣做:

import boto3
from amazon.ion.json_encoder import IonToJSONEncoder
from amazon.ion.simpleion import loads
import json


s3 = boto3.client('s3')
ion_body = s3.get_object(Bucket='somebucket', Key='xxxxxxxxxxxxxx.ion')['Body'].read()
json.dumps(ion_body, cls=IonToJSONEncoder)


暫無
暫無

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

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