首页 > 解决方案 > 使用 for 循环中的值从 txt 创建字典列表

问题描述

需要用键'Date'和. 创建一个字典列表'Value'。键的值存储在具有以下结构的 txt 文件中:

test.txt
01-01-2020 12:00:00,10
01-01-2020 13:00:00,9
01-01-2020 14:00:00,8
01-01-2020 15:00:00,7
01-01-2020 16:00:00,6
01-01-2020 17:00:00,5
...

以下代码的输出是{"01-01-2020 12:00:00":"10", "01-01-2020 13:00:00":"9"}...

我想做的是[{"Date":"01-01-2020 12:00:00","Value":"10"},{"Date":"01-01-2020 13:00:00","Value":"9"}...]

任何帮助将不胜感激,谢谢。

import flask
from flask import request, jsonify

app = flask.Flask(__name__)
app.config["DEBUG"] = True

@app.route('/', methods=['GET'])
def api_data():
    with open (r"test.txt","r") as f:
        # d={}
        l=[]
        for line in f.read().splitlines()[-5:]:
            d={}
            key,val = line.split(",")
            d[key] = val
        return d
    
app.run()

标签: pythonflask

解决方案


目前,您已经使用日期值作为键创建了字典对象,但如果您需要键为字符串DateValue,您可以执行以下操作:

def api_data():
    with open (r"test.txt","r") as f:
        l=[]
        for line in f.read().splitlines()[-5:]:
            key,val = line.split(",")
            d = {"Date": key, "Value" : val}
            l.append(d)
        return l

res = api_data()
print(res)

输出:

[{'Date': '01-01-2020 13:00:00', 'Value': '9'}, {'Date': '01-01-2020 14:00:00', 'Value': '8'}, {'Date': '01-01-2020 15:00:00', 'Value': '7'}, {'Date': '01-01-2020 16:00:00', 'Value': '6'}, {'Date': '01-01-2020 17:00:00', 'Value': '5'}]

此外,您需要将append每个对象添加到列表中并返回列表对象;目前您正在返回字典对象。


推荐阅读