【问题标题】:Dynamic variables in json with Django settings values带有 Django 设置值的 json 中的动态变量
【发布时间】:2022-01-21 20:00:16
【问题描述】:

我正在为某个 api 服务使用 python 库。为了连接到他们的帐户,他们使用 json 文件。 这就是 API 连接的样子。

api = VoximplantAPI('credentials.json')

凭据.json

 {
  "account_email": "my email",
  "account_id": "ac_id",
  "key_id": "key_id",
  "private_key": "private"
}

我删除了这些值。 我有一个问题,如何将动态变量添加到 json 中,以便我可以从 Django 设置中获取值,例如使用 Jinja。我一直在寻找答案几个小时,但我没有找到答案。

【问题讨论】:

  • 你可以使用环境变量,这是一种常用的方法

标签: json django django-rest-framework django-templates


【解决方案1】:

python中的Json在技术上是字典,所以你可以像更新字典一样更新

例如,

a = {"a": 123}
b = {"b": 456}

a.update(b)你会得到回应

{"a": 123, "b": 456}

以同样的方式循环所有你想添加到 json 中的数据 例如,

final_json =  {
  "account_email": "my email",
  "account_id": "ac_id",
  "key_id": "key_id",
  "private_key": "private"
}
users = User.objects.filter(name="test")
temp_dict = {}

count = 1
for user in users:
    temp_dict.update({f"first_name{count}": user.first_name})
    count += 1

然后通过

更新您的final_json
final_json.update(temp_dict)

你会得到你的json:

 {
  "account_email": "my email",
  "account_id": "ac_id",
  "key_id": "key_id",
  "private_key": "private",
  "first_name1": "value_1",
  "first_name2": "value_2",
   ..
   ..
   ..
}

【讨论】:

  • 感谢您的回复,但我不需要更新此数据。目前它们作为静态变量存储在 json 中,这并不好。我需要从另一个文件中获取此文件中的变量并动态插入以隐藏私钥)
  • 来自 JSON 中的变量,你的意思是来自 JSON 的键值对中的键吗?
猜你喜欢
  • 2018-12-18
  • 2011-10-28
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 2010-11-06
  • 1970-01-01
相关资源
最近更新 更多