Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Javascript字典转换为python字典_Javascript_Python_Dictionary - Fatal编程技术网

将Javascript字典转换为python字典

将Javascript字典转换为python字典,javascript,python,dictionary,Javascript,Python,Dictionary,在Django应用程序的某个地方,我对我的视图进行了Ajax调用 $.post("/metrics", { 'program': 'AWebsite', 'marketplace': 'Japan', 'metrics': {'pageLoadTime': '1024'} }); 在我的python代码中,我有 @require_POST def metrics(request): program = request.POST.get('program', '')

在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.load(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()
会帮你处理这个问题。

你的意思不是“度量”:“{pageLoadTime”:“1024”},而是“度量”:“{pageLoadTime:1024}”,然后是json.loads()?有一段时间了,但我相信你可以做
$.post(“/metrics”,{data:json.stringify({'program':'Awebsite',…})
并通过python中的数据访问所有内容。对不起,我想我没有得到它。你能用代码示例演示如何在python中提取吗?我在答案中添加了python