为了账号安全,请及时绑定邮箱和手机立即绑定

将打印输出保存为 dict 或 JSON

将打印输出保存为 dict 或 JSON

缥缈止盈 2022-06-14 17:31:06
我有以下将 boto3 用于 AWS 的代码。import boto3from trp import Document# Documents3BucketName = "bucket"documentName = "doc.png"# Amazon Textract clienttextract = boto3.client('textract')# Call Amazon Textractresponse = textract.analyze_document(    Document={        'S3Object': {            'Bucket': s3BucketName,            'Name': documentName        }    },    FeatureTypes=["FORMS"])#print(response)doc = Document(response)for page in doc.pages:    # Print fields    print("Fields:")    for field in page.form.fields:        print("Key: {}, Value: {}".format(field.key, field.value))我正在尝试将该函数的输出保存为 dict、JSON 或 CSV,但我还不是经验丰富的 python 程序员。我试过这个:key_map = {}filepath = 'output.txt'with open(filepath) as fp:    line = fp.readline()    cnt = 1    while line:        for page in doc.pages:            # Print fields            print("Fields:")            for field in page.form.fields:                #print("Key: {}, Value: {}".format(field.key, field.value))                key_map[str(field.key, field.value)] = cnt                line = fp.readline()                cnt +=1但我认为这个解决方案行不通。关于如何将 for 循环的输出保存为 JSON 的任何提示?
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

如果要作为 csv 输出,可以将csv 模块用作:


import csv


doc = Document(response)


with open('aws_doc.csv', mode='w') as aws_field_file:

    field_write = csv.writer(aws_field_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)


    for page in doc.pages:

        for field in page.form.fields:

            # This will write it as your <key>, <value>

            field_write.writerow([field.key, field.value])

如果您想要文件中的标题,您还可以使用DictWriter这将使您轻松传递字典: https ://docs.python.org/3.4/library/csv.html#csv.DictWriter


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号