如何通过MLCP拆分JSON文件并将每条Book条目单独导入MarkLogic?
解决MLCP导入JSON时的"leading space"错误并拆分文件方案
一、修正原JSON格式
原JSON里使用了单引号('abc'),不符合JSON标准规范,先改成标准双引号格式,同时调整换行缩进避免解析问题:
{"items" : [ { "book" : "abc" }, { "book" : "123" }, { "book" : "xyz" } ]}
二、用Python脚本拆分单个JSON为多文件
创建split_books.py脚本,批量生成独立的book文件:
import json import os # 读取修正后的源JSON文件 with open('source_books.json', 'r', encoding='utf-8') as src_file: content = json.load(src_file) # 创建输出目录,防止目录不存在报错 output_folder = 'split_books' os.makedirs(output_folder, exist_ok=True) # 遍历数组中的每个book项,保存为单独文件 for count, book_item in enumerate(content['items'], start=1): file_path = os.path.join(output_folder, f'book_{count}.json') with open(file_path, 'w', encoding='utf-8') as out_file: json.dump(book_item, out_file, indent=2)
三、执行拆分脚本
运行脚本生成拆分文件:
python split_books.py
执行后split_books目录下会生成3个独立JSON文件,每个文件内容类似:
{ "book": "abc" }
四、MLCP导入拆分后的文件
修改MLCP命令,使用json作为输入类型(不再用delimited_json),指向拆分后的目录:
mlcp.bat import -host localhost -port 7003 -username admin -password admin -input_file_path C:\CR\split_books -input_file_type json
这样导入后会在MarkLogic中生成3个独立文档,同时解决了之前的"leading space"解析错误。
内容的提问来源于stack exchange,提问作者anuj_gupta
相关产品推荐
相关产品推荐

