Flask读取json fi

2024-05-08 14:26:56 发布

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

我是新来的。我有一个已解析.json文件。我想得到已解析.json使用get方法从url获取文件数据。我试过解决stackoverflow问题,但我的问题不是解决了。希望解决方案

这是json数据已解析.json文件

{
    "OfficeServicesID": "1",
    "OfficeID": "1",
    "Service": "eVoting Booth",
    "officeID": "1.0",
    "Office": "Elton Mckenzie",
    "Suburb": "Hurstville",
    "Phone Number": "+61 2 3556 3485",
    "Email": "hurstville@myoffice.gov.au",
    "Lat": "-33.975869",
    "Lon": "151.08893899999998"
},
{
    "OfficeServicesID": "2",
    "OfficeID": "1",
    "Service": "Justice of the Peace",
    "officeID": "2.0",
    "Office": "Kennith Graves",
    "Suburb": "Sydney",
    "Phone Number": "+61 2 3753 2374",
    "Email": "sydney@myoffice.gov.au",
    "Lat": "-33.867139",
    "Lon": "151.207114"
},
{
    "OfficeServicesID": "3",
    "OfficeID": "2",
    "Service": "Library",
    "officeID": "3.0",
    "Office": "Myrna Duke",
    "Suburb": "Auburn",
    "Phone Number": "+61 7 3375 3892",
    "Email": "auburn@myoffice.gov.au",
    "Lat": "-33.849321999999994",
    "Lon": "151.033421"
},

我的代码

table = []
with open('parsed.json', 'r') as f:
    for line in f:
        table.append(json.loads(line))


tasks = table



app = Flask(__name__)

@app.route('/getservices/', methods=['GET'])
def getservices():
    return jsonify(tasks)

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

当转到url http://127.0.0.1:5000/getservices/ 我想要这样的结果

[


    {
    "OfficeServicesID": "1",
    "OfficeID": "1",
    "Service": "eVoting Booth",
    "officeID": "1.0",
    "Office": "Elton Mckenzie",
    "Suburb": "Hurstville",
    "Phone Number": "+61 2 3556 3485",
    "Email": "hurstville@myoffice.gov.au",
    "Lat": "-33.975869",
    "Lon": "151.08893899999998"
    },
    {
    "OfficeServicesID": "2",
    "OfficeID": "1",
    "Service": "Justice of the Peace",
    "officeID": "2.0",
    "Office": "Kennith Graves",
    "Suburb": "Sydney",
    "Phone Number": "+61 2 3753 2374",
    "Email": "sydney@myoffice.gov.au",
    "Lat": "-33.867139",
    "Lon": "151.207114"
    }
]

Tags: jsonnumbergetemailservicephonegovau
1条回答
网友
1楼 · 发布于 2024-05-08 14:26:56

您试图读取的JSON实际上是无效的。它显示一个对象列表,但不包含在方括号中[]。正如Laurent所建议的,首先尝试用方括号[{...}, {...}, {...}]修复JSON,然后解析它。你知道吗

要进行解析,请去掉for并将表直接分配给json.loads,如下所示:

with open('parsed.json', 'r') as f:
    table = json.loads(f.read())

同样,不要忘记先修复JSON。你知道吗

网友
2楼 · 发布于 2024-05-08 14:26:56

您可以用一对括号“[…]”来包装“已解析的json”

import json

table = []

with open('parsed.json', 'r') as f:
    content = f.read()

# remove trailing comma:
content = content.rstrip(",")

# wrap with brackets:
content = "[" + content + "]"

# pase the json list
table = json.loads(content)

简单高效

相关问题 更多 >