현재 Jquery Datatables 플러그인과 Django에서 javascript와 python을 사용하는 프로젝트를 진행하고 있습니다. 내 문제는 파이썬에서 사전을 작성하려고하는데, json.dumps (사전)를 수행하여 JQuery로 보내기를 원한다.JSON에 대한 동적 사전 문제
변환이 수행되고 디버거를 사용하여 JQuery/Javascript 코드의 데이터를 볼 수는 있지만 JSON이 잘못된 이유가 내 테이블에 채워지지 않습니다. 이것은 내가 파이썬 코드에서 사전을 만드는 방식으로 인해 믿습니다. 나는이 단계에서 내가 잘못된 것을하고 있음을 안다. 필자가 본 모든 예는 사전을 동적으로 작성해야하는 하드 코딩 된 사전을 보여줍니다. 파이썬에서 사용하는 코드는 다음과 같습니다. 누군가 내가 잘못하고있는 것을 알고 있다면 제게 미치겠다는 것을 알려주세요.
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), 마임 = '응용 프로그램/자바 스크립트')
결과의 화면 덤프는 다음과 같습니다 -
{ "aaData": [{ "STATUS": "ON", "WORKGROUP": "-", "IP_ADDRESS": "192.168.0.2", "OS_VERSION": "8.04", "MAC_ADDRESS": "00:10 : "", "작업 그룹": "-", "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 : "상태 :" "켜기", "작업 그룹": "-", "IP_ADDRESS": "192.168", "b3 : 43 : 16 : 32", "OS": "Linux", "NAME": "Machine_Three" 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 " , "IP_ADDRESS": "192.168.0.7", "OS_VERSION": "Linux", "NAME": "Machine_Five" "8.04", "MAC_ADDRESS": "00 : 19 : e3 : 46 : 16 : 37", "OS": "Linux", "NAME": "Machine_Six"}, { "STATUS": "ON", "WORKGROUP ":"IP_ADDRESS ":"192.168.0.8 ","OS_VERSION ":"8.04 ","MAC_ADDRESS ":"00 : 19 : f3 : 47 : 16 : 38 ","OS ":"Linux " 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 " "리눅스", "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 " "00 : 19 : d3 : 45 : 16 : 34", "Linux", "Machine_Five"]]} 아이디어를 얻으실 수 있습니다.
저는 이것을 위해 jQuery DataTables 플러그인을 사용하고 있습니다. 나는 문제가 기형적 인 사전 즉 ie : 나의 잘못이라고 믿는다.저는 파이썬에 익숙하지 않고 사전의 다양한 순열을 시험해 보았습니다. 그리고 그것을하지 못하게하는 10 가지 이상의 방법을 발견했습니다. 나는 그 애매한 올바른 방법에 대한 힌트가 필요합니다.
건배 다시
크리스
해결 :
는 내가 그들을 (목록리스트) 원하는 경우 서버에서 다시 배열의 배열을 전달하고 분석하여 문제를 해결했습니다 클라이언트 측에서는 고정 된 크기의 목록으로 인해 성능 문제가 발생하지 않습니다. 나중에 좀 더 자세히 살펴보고 더 나은 해결책이나 좀 더 우아한 해결책을 게시 할 것입니다.
'json.dumps (사전)'하고 있니? 그 결과는 무엇입니까? 예상과 다른 점은 무엇입니까? (나는 예상되는 결과를 전혀 이해하지 못한다. 실제 예제 데이터를 제공한다.) –
값은 따옴표로 묶어야한다. – meouw
@ meouw : 직렬화 될 때 표시 될 것이다. –