背景:
之前在银行做发票 OCR 的时候,遇到过一个第三方的 OCR 产商,它是将发票识别的结果以 json 文件呈现。而我们需要的数据就存在在 json 文件中了。
解决方案:
将 json 文件中字段转化为字典形式,这样我们直接用对应的键就能拿到对应的值了。
代码如下:
import json str_file = 'C:/file/test/test1/1.json'with open(str_file, 'rb',) as f:# print("Load str file from {}".format(str_file))r = json.load(f)print(type(r))print(r)print(r['children'][0]['出货单号'])
这样读出来的结果如下图, r 的形式为:
{'children': [{'出货单号': 'V20190700389', '出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕五厂', '客户料号': '1534-03KY000', '客户编号': 170.0, '序号': 1.0, '整数包装量': '1', '规格': '50*50*3*1000', '订单编号': 'M20180100200'}, {'出货单号': 'V20190700390', '出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕五厂', '客户料号': '1534-03L1000', '客户编号': 170.0, '序号': 2.0, '整数包装量': '1', '规格': '50*50*3*850', '订单编号': 'M20180100200'}, {'出货单号': 'V20190700391', '出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕五厂', '客户料号': '1534-03ET000', '客户编号': 170.0, '序号': 3.0, '整数包装量': '1', '规格': '50*50*5*590','订单编号': 'M20171100204'}, {'出货单号': 'V20190700392', '出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕北四厂', '客户料号': '1534-030E000', '客户编号': '040', '序号': 4.0,'整数包装量': '1', '规格': '50*50*3*800', '订单编号': 'M20171100207'}, {'出货单号': 'V20190700393','出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕北四厂', '客户料号': '1534-02TJ000','客户编号': '040', '序号': 5.0, '整数包装量': '1', '规格': '50*50*3*850', '订单编号': 'M20171100207'},{'出货单号': 'V20190700394', '出货日期': '20190726', '单位': 'PCS', '品名': '护角', '客户名称': '名硕北四厂','客户料号': '1534-030S000', '客户编号': '040', '序号': 6.0, '整数包装量': '1', '规格': '50*50*3*900','订单编号': 'M20171100207'}], 'rows': 7, 'title': 'C:甥敳獲lwjDesktop磐石订单模板.XLS'}
对应,如果我们想拿到出货订单,只需要用 r[‘children’][0]['出货单号'] 便可拿到。这样是不是很方便呢。
想下载使用RPA吗?
扫码即可下载艺赛旗RPA 使用哦!