【发布时间】:2021-02-18 11:32:39
【问题描述】:
假设这是一个大文件。
我想将文件分成多个块。 例如,如果我有一个 500 MB 的 JSON 文件,并且我想将其拆分为不同的块。 可接受的最大文件大小为 30 MB(30000000 字节)。 此函数在 aws lambda 上运行,结果应保存在 s3 存储桶中。 请问我该怎么做?
{
"start":"HelloI",
"users": [
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough"
}
},
{
...
}
]
}
这是我的代码。 我相信我做错了什么。 任何帮助,将不胜感激 谢谢。
json_size = 50580490;
MIN_SIZE = 30000000;
data_len = len(file)
get_array_length = len(file["users"])
print("Print data len : ",data_len)
print("Print Get Array length : ", get_array_length)
items = []
if isinstance(file, dict):
print('Valid JSON file found')
# determine number of files necessary
split_into_files = math.ceil(json_size/MIN_SIZE)
print(f'File will be split into {split_into_files} equal parts')
split_data = [[] for i in range(0,split_into_files)]
print('split_data : ', split_data)
starts = [math.floor(i * get_array_length/split_into_files) for i in range(0,split_into_files)]
starts.append(data_len)
print('starts : ', starts)
for i in range(0,split_into_files):
for n in range(starts[i], starts[i+1]):
print('The value for N is: ' , n)
print("split_data[i] :" , split_data[i])
#print(file["users"][n])
split_data[i].append(file["users"][n])
print(split_data[i])
【问题讨论】:
-
你的代码有什么问题?为什么你认为你做错了什么?你没有输出吗?输出错误?它会抛出错误吗? “这是我的代码,为我修复”在这里不适合。请尝试使用debugging,将您的问题缩小到minimal reproducible example,并就您的代码所面临的问题提出一个具体的问题。
-
@PranavHosangadi 看,我不是要你为我修复代码。我的意思是我可能会走错路。
标签: python json amazon-s3 aws-lambda