【问题标题】:How to convert Amazon Ion file to JSON format using Python?如何使用 Python 将 Amazon Ion 文件转换为 JSON 格式?
【发布时间】:2020-04-20 10:32:31
【问题描述】:

我想将 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 文件中,键是不带引号声明的。

Amazon Ion document 说我们可以将 Ion 向下转换为 Json。但我没有任何办法。 请帮我。谢谢!

【问题讨论】:

  • 我的理解:引用的文档在 java 中陈述了一个示例。原则不是 - 正如您尝试的那样 - 将离子编码数据解释为 json,而是通过例如加载amazon ion python 模块将 ion 数据转换为 python 对象,然后将数据转储为 json。与 ion 相比,将数据存储在 json 中时,文档更关注可能的精度损失。所以,离子 -> python -> json.

标签: python json python-3.x amazon-s3 amazon-ion


【解决方案1】:

你可以使用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))

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多