【发布时间】:2021-09-05 20:40:07
【问题描述】:
我在 python 代码中定义了一个 URL,我需要读取它并将其保存在 json 文件中,然后将它们保存在列表或字典中。在我的代码中,我阅读并打印它们。另外,我想知道我的代码中是否有任何问题,例如 post 方法或从 URL 读取键值对?
from flask import Flask, jsonify, abort, make_response
from flask_restful import Resource, Api
import requests, json
import urllib.request as request
app = Flask(__name__)
api = Api(app)
data = "given_URL"
myjsondata = {}
@app.route('/my_folder/', methods=["POST"])
@app.error
class read(Resource):
def read_data(self):
with request.urllib.urlopen(metadata) as response:
if response.getcode() == 200:
source = response.read()
data = json.loads(source)
for i in data:
for key, value in i.iteritems():
if key == 'uid':
print key, value
myjsondata[key]=value
return jsonify(myjsondata)
else:
abort(make_response(jsonify(404, massage = "No request found"),400))
api.add_resource(read, '/my_folder')
if __name__ == '__main__':
app.run(debug=True)
【问题讨论】:
-
你的第一个“for循环”将永远不会执行,因为“for i in data:}”在“if response.getcode() == 200:”代码块中,而你的“if response.getcode( ) == 200:" 在执行“for i in data:”之前在“return jsonify(data)”处退出
-
您好,非常感谢您的回复。我只是相应地编辑了代码,希望这是真的。
-
似乎您已编辑但它仍然不会执行,“return”或“abort”将退出而不执行您的 for 循环。尝试在 for 循环之后放置“返回数据”...与“for i in data:”相同的缩进空间
-
是的,这是真的。我刚刚又编辑了。我不确定我是否把退货放在了正确的地方。
-
这应该工作