【问题标题】:URL JSON Response using Django Rest Framework使用 Django Rest 框架的 URL JSON 响应
【发布时间】:2021-11-05 23:29:33
【问题描述】:

我有一个返回 JSON 响应的 URL,比如说 (http://json-data.com)。我必须从这个 URL 获取这个 JSON 数据并将这些数据保存到 RDBMS 中。

那么,我可以使用 Django 或 REST 框架中的任何方法或类来从变量中的在线 URL 获取 JSON 数据,然后将其保存到 RDBMS 中吗?

我是 python 和 Djanog 的新手,所以这个问题可能很幼稚。如果您能以任何方式帮助我,我将不胜感激。

提前致谢

【问题讨论】:

  • 你能用一个简单的例子解释一下你的目标是什么吗?
  • 是的。我有一个返回 JSON 响应的 URL。我必须从这个 URL 获取这个 JSON 数据并将这些数据保存到 RDBMS 中。

标签: python django django-rest-framework


【解决方案1】:

如果您只想在数据库中存储原始 JSON,您可以在模型上使用 JSONField。看看docs here

如果您想将返回的值存储在模型的实例中,您可以执行以下操作:

data = requests.get(url)
json_data = data.json()

# isolate the data key from the HTTP response object
item_list = json_data.get('data')

for item in item_list:
  name = item['name']
  age = item['age']

  # This will create a new instance for every object in the array from JSON response
  YourModel.objects.create(name=name, age=age)
   

【讨论】:

  • 好的,知道了。非常感谢你。这真的很有帮助。
【解决方案2】:

如果您获取的 JSON 响应数据以某种方式构建,您可以创建自己的模型来匹配您获取的数据。之后,您可以创建一个脚本/命令来从 url 获取数据并将其保存到您的模型中。 以这种方式访问​​数据库数据会更干净、更容易。

【讨论】:

  • 感谢您的回答。我明白你在说什么,但只是一个问题。我知道我得到的 JSON 响应是结构化的,并且我还根据它创建了一个模型。我使用 'json_data = requests.get(url)' 从 URL 获取数据。现在我不确定如何将这些数据映射到我的模型并保存。
  • 可以参考这个例子,JSON数据包含多个[{"name": 'XYZ', "age":"34"}, {"name": 'ABC ', "年龄":"45"}]
  • 您基本上可以创建一个管理命令(查看文档),并在那里编写您的逻辑。您从 Json 响应中获取数据,并从您编写的模型中创建一个新对象。完成后,您只需运行 object.save()
猜你喜欢
  • 2021-01-30
  • 2020-06-17
  • 2019-07-26
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2018-12-08
  • 1970-01-01
相关资源
最近更新 更多