首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将API输出导出到txt文件

将API输出导出到txt文件
EN

Stack Overflow用户
提问于 2021-11-10 16:02:33
回答 3查看 285关注 0票数 0

我已经用FastAPI创建了一个简单的API,我希望将输出导出到一个文本文件(txt)中。

这是一个简化的代码

代码语言:javascript
复制
import sys
from clases.sequence import Sequence
from clases.read_file import Read_file
from fastapi import FastAPI
 
app = FastAPI()
 
@app.get("/DNA_toolkit")
def sum(input: str):                        # pass the sequence in, this time as a query param
    DNA = Sequence(input)                         # get the result (i.e., 4)
    return {"Length": DNA.length(),         # return the response
            "Reverse": DNA.reverse(),
            "complement":DNA.complement(),
            "Reverse and complement": DNA.reverse_and_complement(),
            "gc_percentage": DNA.gc_percentage()
            } 

这是输出

代码语言:javascript
复制
{"Length":36,"Reverse":"TTTTTTTTTTGGGGGGGAAAAAAAAAAAAAAAATAT","complement":"ATATTTTTTTTTTTTTTTTCCCCCCCAAAAAAAAAA","Reverse and complement":"AAAAAAAAAACCCCCCCTTTTTTTTTTTTTTTTATA","gc_percentage":5.142857142857143}

我想要的文件

代码语言:javascript
复制
Length 36
Reverse TTTTTTTTTTGGGGGGGAAAAAAAAAAAAAAAATAT
complement ATATTTTTTTTTTTTTTTTCCCCCCCAAAAAAAAAA
Reverse and complement AAAAAAAAAACCCCCCCTTTTTTTTTTTTTTTTATA

有一个简单的方法可以做到这一点。这是我第一次使用API,我甚至不知道这有多可能

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-10 16:15:06

您可以使用open方法创建一个新文件,并编写输出。正如@Blackgaurd告诉你的,这不是一个代码编写服务。

,而且我写这段代码非常快,所以可能会出现一些语法错误,

代码语言:javascript
复制
import sys
import datetime
from clases.sequence import Sequence
from clases.read_file import Read_file
from fastapi import FastAPI

app = FastAPI()

@app.get("/DNA_toolkit")
def sum(input: str):                        # pass the sequence in, this time as a query param
    DNA = Sequence(input)                    # get the result (i.e., 4)
    res = {"Length": DNA.length(),         # return the response
        "Reverse": DNA.reverse(),
        "complement":DNA.complement(),
        "Reverse and complement": DNA.reverse_and_complement(),
        "gc_percentage": DNA.gc_percentage()
        }

    #with open('result.txt', 'w+') as resFile:
        #for i in res:
            #resFile.write(i+" "+res[i]+"\n")

        #resFile.close()

        # Undo the above comment if you don't want to save result into 
        #file with unique id, else go with the method I wrote below...
    filename = str(datetime.datetime.now().date()) + '_' + str(datetime.datetime.now().time()).replace(':', '.')
    with open(filename+'.txt', 'w+') as resFile:
        for i in res:
            resFile.write(i+" "+res[i]+"\n")

        resFile.close()

    return {"Length": DNA.length(),         # return the response
        "Reverse": DNA.reverse(),
        "complement":DNA.complement(),
        "Reverse and complement": DNA.reverse_and_complement(),
        "gc_percentage": DNA.gc_percentage()
        }
票数 0
EN

Stack Overflow用户

发布于 2021-11-10 16:22:19

代码语言:javascript
复制
dict1={"Length":36,"Reverse":"TTTTTTTTTTGGGGGGGAAAAAAAAAAAAAAAATAT","complement":"ATATTTTTTTTTTTTTTTTCCCCCCCAAAAAAAAAA","Reverse and complement":"AAAAAAAAAACCCCCCCTTTTTTTTTTTTTTTTATA","gc_percentage":5.142857142857143}

with open("output.txt","w") as data:
    for k,v in dict1.items():
        append_data=k+" "+str(v)
        data.write(append_data)
        data.write("\n")

输出:

代码语言:javascript
复制
Length 36
Reverse TTTTTTTTTTGGGGGGGAAAAAAAAAAAAAAAATAT
complement ATATTTTTTTTTTTTTTTTCCCCCCCAAAAAAAAAA
Reverse and complement AAAAAAAAAACCCCCCCTTTTTTTTTTTTTTTTATA
gc_percentage 5.142857142857143
票数 1
EN

Stack Overflow用户

发布于 2021-11-10 16:21:20

我假设您已经以某种方式获得了调用API的数据。

代码语言:javascript
复制
# data = request.get(...).json()

# save to file:
with open("DNA_insights.txt", 'w') as f: 
    for k, v in data.items(): 
        f.write(f"{k}: {v}\n")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69916471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档