使用键作为文件名将字典内容写入文件
Write dictionary content to files with keys as filename
我在名为“month_data”的对象中有一个字典,其中包含列表作为值。
{
'2000-01': [
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 01:00:00',
'temp': -0.57,
'feels_like': -2.64,
'humidity': 97,
'pressure': 1024
},
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 02:00:00',
'temp': -0.38,
'feels_like': -2.46,
'humidity': 97,
'pressure': 1024
}
],
'2000-02': [
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 01:00:00',
'temp': -0.57,
'feels_like': -2.64,
'humidity': 97,
'pressure': 1024
},
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 02:00:00',
'temp': -0.38,
'feels_like': -2.46,
'humidity': 97,
'pressure': 1024
}
]
}
我想将内容写入到 s3 存储桶中的单独文件中,但到目前为止失败了。
错误是:
ParamValidationError: Parameter validation failed:
这是代码:
for month, data in month_data.items():
s3.put_object(Bucket=s3_bucket, Body=data ,Key=f"{month}.json")
有谁知道它失败的原因吗?
谢谢
一个
看起来您正在尝试将数据保存为 JSON,因此您应该使用 json.dumps
编写一个 JSON 字符串,如下所示:
import boto3
import json
s3 = boto3.client("s3")
s3_bucket = "mybucket"
month_data = { ... }
for month, data in month_data.items():
s3.put_object(
Bucket=s3_bucket, Body=json.dumps(data), Key=f"{month}.json"
)
我在名为“month_data”的对象中有一个字典,其中包含列表作为值。
{
'2000-01': [
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 01:00:00',
'temp': -0.57,
'feels_like': -2.64,
'humidity': 97,
'pressure': 1024
},
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 02:00:00',
'temp': -0.38,
'feels_like': -2.46,
'humidity': 97,
'pressure': 1024
}
],
'2000-02': [
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 01:00:00',
'temp': -0.57,
'feels_like': -2.64,
'humidity': 97,
'pressure': 1024
},
{
'lat': 52.54,
'lon': 13.54,
'timestamp': '2000-01-01 02:00:00',
'temp': -0.38,
'feels_like': -2.46,
'humidity': 97,
'pressure': 1024
}
]
}
我想将内容写入到 s3 存储桶中的单独文件中,但到目前为止失败了。 错误是:
ParamValidationError: Parameter validation failed:
这是代码:
for month, data in month_data.items():
s3.put_object(Bucket=s3_bucket, Body=data ,Key=f"{month}.json")
有谁知道它失败的原因吗?
谢谢
一个
看起来您正在尝试将数据保存为 JSON,因此您应该使用 json.dumps
编写一个 JSON 字符串,如下所示:
import boto3
import json
s3 = boto3.client("s3")
s3_bucket = "mybucket"
month_data = { ... }
for month, data in month_data.items():
s3.put_object(
Bucket=s3_bucket, Body=json.dumps(data), Key=f"{month}.json"
)