对于AVRO来说还是比较新的所以请原谅我是否遗漏了任何明显的东西.
是否有AVRO验证器/命令行实用程序来验证AVRO模式的输入?或者可能指向json输入中的错误位置.
是否有AVRO验证器/命令行实用程序来验证AVRO模式的输入?或者可能指向json输入中的错误位置.
解决方法
不是我知道的.我写了这个小小的
python脚本,它会告诉你json文件是否与模式匹配,但它不会告诉你错误在哪里(如果有的话).
这取决于Python avro library.
#!/usr/bin/env python from avro.io import validate from avro.schema import parse from json import loads from sys import argv def main(argv): valid = set() invalid_avro = set() invalid_json = set() if len(argv) < 3: print "Give me an avro schema file and a whitespace-separated list of json files to validate against it." else: schema = parse(open(argv[1]).read()) for arg in argv[2:]: try: json = loads(open(arg,'r').read()) if validate(schema,json): valid.add(arg) else: invalid_avro.add(arg) except ValueError: invalid_json.add(arg) print ' Valid files:\n\t' + '\n\t'.join(valid) print 'Invalid avro:\n\t' + '\n\t'.join(invalid_avro) print 'Invalid json:\n\t' + '\n\t'.join(invalid_json) if '__main__' == __name__: main(argv)