Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将打印输出保存为dict或JSON_Python_Json_Dictionary_Amazon Textract - Fatal编程技术网

Python 将打印输出保存为dict或JSON

Python 将打印输出保存为dict或JSON,python,json,dictionary,amazon-textract,Python,Json,Dictionary,Amazon Textract,我有以下代码将boto3用于AWS import boto3 from trp import Document # Document s3BucketName = "bucket" documentName = "doc.png" # Amazon Textract client textract = boto3.client('textract') # Call Amazon Textract response = textract.analyze_document( Docum

我有以下代码将boto3用于AWS

import boto3
from trp import Document

# Document
s3BucketName = "bucket"
documentName = "doc.png"

# Amazon Textract client
textract = boto3.client('textract')

# Call Amazon Textract
response = 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的任何提示?

如果您想将其作为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])
导入csv
doc=文件(响应)
打开('aws_doc.csv',mode='w')作为aws_字段文件:
field_write=csv.writer(aws_field_文件,分隔符=',',quotechar='','Quotech=csv.QUOTE_最小值)
对于doc.pages中的页面:
对于page.form.fields中的字段:
#这将作为您的,
field\u write.writerow([field.key,field.value])
如果您想在文件中添加标题,还可以使用
DictWriter
,这样您就可以轻松地传递字典:

您尝试的似乎是从文件中读取而不是写入。因此,您只想将
doc=Document(response)
的输出写入文件?是的。因此,将打印输出(print(“Key:{},Value:{}”。format(field.Key,field.Value))保存为JSON或CSV。这很有效!谢谢!我将查看标题。