我目前正在使用javascript和python与Jquery Datatables插件和Django的项目。我的问题是,我正在尝试在Python中创建一个字典,然后我希望执行一个json.dumps(字典)以将其发送到JQuery。动态字典到JSON问题
转换被执行,我可以使用调试器查看JQuery/Javascript代码中的数据,但是它并未填充我的表格,原因是JSON格式错误。我相信这是由于Python代码中的Dictionary创建的方式。我知道我在这一步做错了事。我见过的所有例子都显示了一个硬编码字典,我需要动态创建字典。这是我在Python中使用的代码。如果有人知道我做错了什么,请让我知道这让我疯狂。这是字典代码的最新排列: -
dictionary = {}
array = []
status = 'OFF'
for item in self.scanResults:
if item[6]:
status = 'ON'
else:
status = 'OFF'
array.append({'MAC_ADDRESS':item['mac_addr'],
'IP_ADDRESS':item['ip_addr'],
'NAME':item['name'],
'OS':item['os'],
'OS_VERSION':item['os_version'],
'WORKGROUP':'--',
'STATUS':status
})
dictionary = dict({'aaData': array})
jQuery开发方面的JSON应该在这个格式: -
{"aaData": [[..,..,..,..,],[..,..,..,..]]}
干杯任何帮助,您可以提供
克里斯
编辑:
更多信息。对不起,以前没有包括它。 我编码它的方式如下: -
返回的HttpResponse(simplejson.dumps(response_dict),MIME类型= '应用/ JavaScript的')
结果的屏幕转储是: -
{ “aaData”:[{“STATUS”:“ON”,“WORKGROUP”:“ - ”,“IP_ADDRESS”:“192.168.0.2”,“OS_VERSION”:“8.04”,“MAC_ADDRESS”:“00:10: e3:42:16:35“,”OS“:”Linux“,”NAME“:”Machine_One“},{”STATUS“:”ON“,”WORKGROUP“:” - “,”IP_ADDRESS“:”192.168 “OS_VERSION”:“8.04”,“MAC_ADDRESS”:“00:19:a3:41:16:31”,“OS”:“Linux”,“NAME”:“Machine_Two”},{“STATUS “:”ON“,”WORKGROUP“:” - “,”IP_ADDRESS“:”192.168.0.4“,”OS_VERSION“:”8.04“,”MAC_ADDRESS“:”00:19: b3:43:16:32“,”OS“:”Linux“,”NAME“:”Machine_Three“},{”STATUS“:”ON“,”WORKGROUP“:” - “,”IP_ADDRESS“:”192.168 “OS_VERSION”:“8.04”,“MAC_ADDRESS”:“00:19:c3:44:16:33”,“OS”:“Linux”,“NAME”:“Machine_Four”},{“STATUS “:”ON“,”WORKGROUP“:” - “,”IP_ADDRESS“:”192.168.0.6“,”OS_VERSION“:”8.04“,”MAC_ADDRESS“:”00:19:d3:45:16:34“ ,“OS”:“Linux”,“NAME”:“Machine_Five”},{“STATUS”:“ON”,“WORKGROUP”:“ - ”,“IP_ADDRESS”:“192.168.0.7”,“OS_VERSION” “8.04”,“MAC_ADDRESS”:“00:19:e3:46:16:37”,“OS”:“Linux”,“NAME”:“Machine_Six”},{“STATUS”:“ON” “:” - “,”IP_ADDRESS“:”192.168.0.8“,”OS_VERSION“:”8.04“,”MAC_ADDRESS“:”00:19:f3:47:16:38“,”OS“ ,“NAME”:“Machine_Seven”},{“STATUS”:“ON”,“WORKGROUP”:“ - ”,“IP_ADDRESS”:“192.168.0.9”,“OS_VERSION”:“8.04”,“MAC_ADDRESS” “00:19:g3:48:16:38”,“OS”:“Linux”,“NAME”:“Machine_Eight”},{“STATUS”:“ON”,“WORKGROUP”:“ - ” IP_ADDRESS“:”192.168.0.10“,”OS_VERSION“:”8.04“,”MAC_ADDRESS“:”00:19:h3:49:16:41“,”OS“:的 “Linux”, “NAME”: “Machine_Nine”}]}
实际epected结果将是: -
{ “aaData”:[[ “ON”, “ - ”,“192.168.0.6 “,”8.04“,”00:19:d3:45:16:34“,”Linux“,”Machine_Five“], [”ON“,” - “,”192.168.0.6“,”8.04“ “00:19:d3:45:16:34”,“Linux”,“Machine_Five”]]} 只是给你一个想法。
我为此使用了jQuery DataTables插件。我相信这个问题是畸形的词典,即:我的错。我是python的新手,尝试了大量的字典组合,并且发现了10种以上的方法,我不需要这样做,我只需要提示那种难以捉摸的正确方式。
干杯再次
克里斯
解决:
我已经从服务器传回一个数组的数组(名单列表)如果你喜欢和解析他们在解决问题客户端由于列表的固定大小,这不会导致性能问题。我会在晚些时候更密切地关注这个问题,并提出一个更好的解决方案或更优雅的解决方案。
你在做'json.dumps(字典)'吗?那是什么结果?它与你期望的有什么不同? (我完全不理解预期输出 - 请给出一些实际示例数据。) – 2011-03-29 10:24:06
您的值需要用引号 – meouw 2011-03-29 10:27:33
@meouw:它们将在序列化时生效。 – 2011-03-29 10:29:29