我是新来的烧瓶。我有一个 parsed.json 文件。我想使用get方法从url获取parsed.json文件数据。我在stackoverflow上尝试了解决方法,但是我的问题没有解决。希望得到解决方法
这是parsed.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"
}
]
答案 0 :(得分:0)
您可以将“解析的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)
简单高效……
答案 1 :(得分:0)
您尝试读取的JSON实际上无效。它显示对象列表,但不包含在方括号[]
中。正如Laurent所建议的那样,请尝试先用方括号[{...}, {...}, {...}]
修复JSON,然后再对其进行解析。
要解析,请摆脱for
并将表直接分配给json.loads
,如下所示:
with open('parsed.json', 'r') as f:
table = json.loads(f.read())
同样,不要忘了先修复您的JSON。