Hacker News new | ask | show | jobs
by kakadzhun 1839 days ago
Script to filter out records of a .jsonl file based on some property (e.g. only want records w/ a timestamp greater than 163623...):

    import sys
    import orjson
    import argparse

    if __name__ == '__main__':
        parser = argparse.ArgumentParser()
        parser.add_argument('expr')
        parser.add_argument('file', nargs='?')
        args = parser.parse_args()
        expression = compile(args.expr, '<string>', 'eval', optimize=0)

        if args.file:
            stream = open(args.file, 'f')
        else:
            stream = sys.stdin

        try:
            for line in stream:
                json = orjson.loads(line)
                if eval(expression, {}, json):
                    print(line.strip())
        finally:
            if args.file:
                stream.close()