自定义训练模型批量预测JSON格式问题排查求助
问题根源与解决方案
错误原因
日志中的JSONDecodeError明确指出:JSON语法要求属性名必须用双引号包裹,但你生成的第二种格式JSON Lines文件里,属性名(values、key)和字符串值用的是单引号(比如{'values': [...]}),这违反了JSON的语法规范,导致Vertex AI的批量预测服务无法解析。
问题出在生成文件的Python代码里:你直接用str(element)把字典转成字符串,Python默认会用单引号表示字典的键和字符串值,这不是标准JSON格式。
修正代码
不要用str()转换字典,改用Python标准库json的dumps()方法,它会生成符合JSON规范的双引号格式字符串:
import json input_json_list = [{"values": element, "key": entry} for element, entry in zip(x_test_list, image_path_list)] with open('input_file21.jsonl', 'w') as fichier: for element in input_json_list: # 使用json.dumps生成标准JSON格式的字符串 fichier.write(json.dumps(element) + '\n')
验证修正后的文件格式
修正后生成的每行内容应该是类似这样的标准JSON对象:
{"values": [[[5.0, 20.0, 17.0], [5.0, 20.0, 17.0], ... [13.0, 29.0, 18.0]]], "key": "gs://prototype-to-production-bucket-sb/x_test_image/test-image_1922.jpeg"}
这样Vertex AI的批量预测服务就能正常解析JSON Lines文件了。
内容的提问来源于stack exchange,提问作者user3542259
相关产品推荐
相关产品推荐

