【问题标题】:How to read metadata from a given URL and save it as a json file with key_value pairs?如何从给定的 URL 读取元数据并将其保存为带有 key_value 对的 json 文件?
【发布时间】: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:”相同的缩进空间
  • 是的,这是真的。我刚刚又编辑了。我不确定我是否把退货放在了正确的地方。
  • 这应该工作

标签: python json flask rest


【解决方案1】:

读取元数据。 以您的方式排列键和值以制作字典。

#Save extracted content to dictionary/list
myjsondata={}
for i in data:
    for key, value in i.iteritems():
        if key == 'uid':
           print key, value
           myjsondata[key]=value

#Save your dictionary content to json file
with open('saved_json_file_1.json', 'w') as saveFile:
    saveFile.write(json.dumps())
  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2016-02-12
    • 1970-01-01
    • 2018-11-11
    相关资源
    最近更新 更多