Python 解析Json,该Json包含来自s3的多个用字符串包装的Json对象
我在S3中有一个json文件,其中包含多个json对象,其结构如下所示Python 解析Json,该Json包含来自s3的多个用字符串包装的Json对象,python,json,amazon-s3,boto3,Python,Json,Amazon S3,Boto3,我在S3中有一个json文件,其中包含多个json对象,其结构如下所示 "{"category" : "random", "a": 1, "b": 2, "c": 3}" "{"category" : "automobile", "brand": "bmw", "car"
"{"category" : "random", "a": 1, "b": 2, "c": 3}"
"{"category" : "automobile", "brand": "bmw", "car": "x3", "price": "100000"}"
"{"category" : "random", "a": 7, "b": 8, "c": 9}"
如您所见,此json文件包含多个包装为字符串的json对象
我想从s3读取这个json文件并对其进行解析。所以我就这样做了
import boto3
import json
s3 = boto3.resource('s3')
content_object = s3.Object(bucket,key)
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = json.loads(file_content)
print(json_content['Details'])
但是我犯了以下错误json.decoder.jsondeCoderror:额外数据
我认为这是因为这个json文件包含多个json对象,每个对象都包装在一个字符串中
我想如果我能设法在每个json对象的末尾和开头获得每个引号标记,我就能够解析它
但我不确定这是否是唯一(或最好)的方法(如果我能以有效的方式做到这一点)
还有什么方法可以解析这个json吗
注意:每个Json不需要具有所有相同的属性,尽管我在上面放的这个Json文件只有3个对象,但我想将它们扩展到更大的范围。您必须逐行执行。这将生成一个对象列表
import boto3
import json
s3 = boto3.resource('s3')
content_object = s3.Object(bucket,key)
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = [json.loads(line) for line in file_content.splitlines()]
print(json_content)
你得一行一行地做。这将生成一个对象列表
import boto3
import json
s3 = boto3.resource('s3')
content_object = s3.Object(bucket,key)
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = [json.loads(line) for line in file_content.splitlines()]
print(json_content)