将Javascript字典转换为python字典

Convert Javascript dictionary to python dictionary

本文关键字:字典 python 转换 Javascript      更新时间:2023-09-26

在我的Django应用程序的某个地方,我对我的视图进行了Ajax调用

$.post("/metrics", {
  'program': 'AWebsite',
  'marketplace': 'Japan',
  'metrics': {'pageLoadTime': '1024'}
});

在我的python代码中,我有

@require_POST
def metrics(request):
    program = request.POST.get('program', '')
    marketplace = request.POST.get('marketplace', '')
    metrics = request.POST.get('metrics', '')
    reportMetrics(metrics, program, marketplace)

python中的metrics()函数应该使用这些参数调用reportMetrics(),然后应该在日志文件中记录。但在我的日志文件中,我没有看到'pageLoadTime'值-可能是因为它作为字典传递。在未来我需要添加更多的项目,所以它需要保持一个字典(而不是像前两个字符串)。

将传入的javascript字典转换为python字典的最简单方法是什么?

将javascript字典以json格式发送,并导入python json模块将其拉出。你将使用json.loads(jsonString)。

编辑-添加示例

$.post("/metrics", {
   data: JSON.stringify({
      'program': 'AWebsite',
      'marketplace': 'Japan',
      'metrics': {'pageLoadTime': '1024'}
   })
});

然后在python这边

import json
def metrics(request):
    data = json.loads(request.POST.get('data'))
    program = data.get('program','')
    marketplace = data.get('marketplace','')
    metrics = data.get('metrics','')

我现在真的没有一个很好的方法来测试它,但我相信它应该可以工作。您可能还必须做一些检查,如果字段是空白的,但我相信.get()将为您处理。