在屏幕上显示输出时出现UnicodeEncodeError
我在S3上有一个JSON文件,这个文件的名字里有一些动态的分隔符,然后是JSON数据本身。我想在从S3读取文件的时候去掉这些字符。
下面是一个示例数据:
文件名 | XYZ_445643_Split0_A.json |
数据 | 445643_Split0_A##{"Data":[{..},{..}]} |
我正在尝试用Python读取这个文件。
import boto3
s3 = boto3.client("s3")
response = s3.get_object(Bucket=some_bucket,Key=some_bucket/XYZ_445643_Split0_A.json)
data = response["Body"].read().decode("utf-8")
data = data.split('##')[1]
在屏幕上打印输出时出现了以下错误:
UnicodeEncodeError: 'charmap' codec can't encode characters in position: character maps to undefined
1 个回答
-1
你忘了把字符串转换成json格式了
# -*- coding: utf-8 -*-
import json
rr = '445643_Split0_A##{"Data":[{"key": "value"},{"key1": "value1"}]}'
ss = json.loads(rr.split('##')[1])
print(ss["Data"])
print(ss["Data"][0])
for i in ss["Data"]:
print(i)
for k,v in ss.items():
print(k,v)
#[{'key': 'value'}, {'key1': 'value1'}]
#{'key': 'value'}
#{'key': 'value'}
#{'key1': 'value1'}
#Data [{'key': 'value'}, {'key1': 'value1'}]