无需加载文件即可进行JSON格式验证

时间:2018-06-21 22:53:13

标签: python json amazon-s3

如何在不加载文件的情况下验证JSON格式?我正在将文件从一个S3存储桶复制到另一个S3存储桶。 JSONL文件之后 复制后,我想检查大括号和逗号是否正确的文件格式。

我不想使用json.load(),因为文件大小和数量很大,并且会减慢处理过程,并且文件已经被复制,因此无需解析它,只需进行验证即可。

2 个答案:

答案 0 :(得分:1)

Amazon S3本身没有功能来验证对象的内容。

只要在S3存储桶中创建文件,就可以配置S3来触发AWS Lambda函数。然后,如果验证失败,则Lambda函数可以解析文件并执行某些操作(例如,发送通知或将对象移动到另一个位置)。

答案 1 :(得分:0)

流式处理文件似乎是解决该问题的方法,将其放入生成器中并逐行生成以检查JSON是否有效。请求库支持流式传输文件。

  

解决方案如下:

import requests
def get_data():
    r = requests.get('s3_file_url', stream=True)

    yield from r.iter_lines():


def parse_data():
    # initialize generator
    gd_gen = get_data()

    while True:
        try:
            ge_gen.__next__()
        except StopIteration:
            break

        # put your validation code here

让我知道您需要更好的说明