用Python中的URL替换嵌入数据

2024-04-20 07:50:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个可以工作的Python代码。你知道吗

from flask import Flask, jsonify

    app = Flask(__name__)

tasks = [
    {
        'id': 1,
        'title': 'Public',
        'description': 'Available to download',
        'done': False
    },
    {
        'id': 2,
        'title': 'Non-Public',
        'description': 'Not available to download',
        'done': False
    },
     {
        'id': 3,
        'title': 'Restricted-Public',
        'description': 'got to',
        'done': False
    }
]

@app.route('/api/PDL/<int:task_id>', methods=['GET'])
def get_task(task_id):
    task = [task for task in tasks if task['id'] == task_id]
    if len(task) == 0:
        abort(404)
    return jsonify({'task': task[0]})

if __name__ == '__main__':
    app.run(debug=True)

我正在尝试替换以下内容以从外部数据.json地址:

tasks = [
        {
            'id': 1,
            'title': 'Public',
            'description': 'Available to download',
            'done': False
        },
        {
            'id': 2,
            'title': 'Non-Public',
            'description': 'Not available to download',
            'done': False
        },
         {
            'id': 3,
            'title': 'Restricted-Public',
            'description': 'got to',
            'done': False
        }
    ]

我尝试使用tasks = open("/myproject/test.json"),但出现以下Python错误。你知道吗

TypeError: string indices must be integers

我怎样才能解决这个问题?你知道吗


Tags: tonameidfalseappflasktaskif
1条回答
网友
1楼 · 发布于 2024-04-20 07:50:47

当您用open加载文件时,您正在将内容作为字符串读入tasts。您需要转换为Pythondictionary对象,以便能够像在以前的代码中一样使用它。你知道吗

试试JSON。要设置文件中要启动的正确字符串,请执行以下操作:

import json

tasks = [
    {
        'id': 1,
        'title': 'Public',
        'description': 'Available to download', 
        'done': False
    },
    {
        'id': 2,
        'title': 'Non-Public',
        'description': 'Not available to download', 
        'done': False
    },
    {
        'id': 3,
        'title': 'Restricted-Public',
        'description': 'got to', 
        'done': False
    }
]

with open('/myproject/test.json', 'w') as f:
    f.write(json.dumps(tasks))

然后,将文件的内容作为Python dictionary加载:

import json

with open('/myproject/test.json') as f:
    tasks = json.loads(f.read())

相关问题 更多 >