2012-09-20 5 views
0

테이블 person (ID, 이름, 전자 메일)에서 Mysql의 데이터를 가져옵니다. 테이블에는 많은 행이 있습니다. 루프에서 json 배열을 넣으려고합니다. 하지만 json 배열에서 새 배열로 덮어 쓰게됩니다.MySql에서 Json 배열로 데이터 삽입

for row in results: 
     persons = { 
        [{ 
         'personId' : row[0], 
         'personName' : row[1], 
         'personEmail' : row[2] 
        },] 
       } 
    print json.dumps(persons) 

는 아무도 해결책을 줄 수 있습니까?

답변

1

코드에서 for 루프를 반복 할 때마다 현재 행인 멤버가있는 파이썬 사전으로 사람을 다시 작성하고 더 많은 행 ("사람")을 사전에 추가하지 않습니다. { "personId":

persons={} 
for row in results: 
    persons[row[0]] = {      
         'personId' : row[0], 
         'personName' : row[1], 
         'personEmail' : row[2]      
       } 
print json.dumps(persons) 
+0

야,이 솔루션을, 내가이 형식 코드 '{ "1"의 결과를 얻을 : 당신은 그것을 다시 작성의 라인을 따라 뭔가가 필요 하나, " PERSONNAME ":"Amritha D " "personEmail ":"[email protected] " } "2 ": { "personId "2 "PERSONNAME ":"Aishwarya R " " personEmail ":"[email protected] " } } 하지만이 형식 코드 0의 인덱스가"1 ","2 "인 json 배열이 필요합니다.'{{ "personId"1 "PERSONNAME": "Amritha D" "personEmail": "[email protected]" 를}, { "personId"2 " personname ":"Aishwarya R ", "personEmail ":"[email protected] " } } –

+0

그래서 사전은 사용하지 말고 목록을 사용하십시오. 'persons = []'를 초기화하고 for 루프의 각 반복자에서'persons.append (....) '를 사용하면됩니다. – Harel

+0

감사합니다! 그 작품. –