Колба читать файл JSON - PullRequest
       4

Колба читать файл JSON

0 голосов
/ 27 апреля 2019

Я новый в колбе.У меня есть файл parsed.json .Я хочу получить данные файла parsed.json из URL с помощью методов get.Я попытался отправить сообщение о решении на stackoverflow, но моя проблема не решена. Надеюсь на решение

это данные json в файле parsed.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"
    }
]

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

JSON, который вы пытаетесь прочитать, на самом деле недействителен.Он отображает список объектов, но не заключен в квадратные скобки [].Как предложил Лоран, попробуйте сначала исправить JSON с квадратными скобками [{...}, {...}, {...}], а затем проанализировать его.

Для анализа избавьтесь от for и присвойте таблицу непосредственно json.loads, например так:

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

Опять же, не забудьте сначала исправить свой JSON.

0 голосов
/ 27 апреля 2019

Вы можете обернуть свой "разобранный 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)

Простой и эффективный…

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...