2017-01-14 1 views
1

저는 현재 파이썬에서 람다를 개발 중입니다. 실제로 저는 파이썬으로 jsons를 빌드하는 데 어려움을 겪고 있습니다.인쇄 결과와 다른 결과 얻기

람다는 dynamodb-table에서 읽고 반환 된 모든 값을 json 구조에 추가합니다.

json을 인쇄 할 때 매력적이지만 콜백으로 반환하는 것은 아닙니다.

에 SampleCode :

import json 

def lambda_handler(event, context): 
    jsondata = '{' \ 
     '"cols": [' \ 
      '{"id":"","label":"Timestamp","pattern":"","type":"string"},' \ 
      '{"id":"","label":"Temperature","pattern":"","type":"number"},' \ 
      '{"id":"","label":"Humidity","pattern":"","type":"number"}' \ 
      '],' \ 
     '"rows": [' 
    jsondata += ']' \ 
     '}' 
    print jsondata 
    return jsondata 

if __name__ == "__main__": 
    lambda_handler(None, None) 

는이 "문자열 또한"이 부드러운 방법이 아니다 나에게 보인다, 그러나 인쇄가 예상대로 보이는 동안

위해 일한 유일한 사람이었다

log output

반환 값은 나를 위해 반환 값은 사용할 수 없게되는 백 슬래시가 포함되어 있습니다. 응용 프로그램은 쉘에 인쇄되어 있기 때문에

enter image description here

,이 값을 올바르게 표시됩니다 :

shell output

어떤 아이디어?

건배 감사 사전에, 마티아스

+1

반환 값은 백 슬래시를 포함하지 않는, 그냥 표시가 표시가 json 모듈에서 dumps 기능 JSON을 구축하기 쉽게,

을 말했다 이중 따옴표로 된 문자열 리터럴은 문자열 안에서 큰 따옴표를 이스케이프해야합니다. diff. 왜, 당신이 가져 오는'json' 패키지를 사용하지 않습니까? – schwobaseggl

답변

3

문자열은 백 슬래시가 포함되어 있지 않습니다. 해당 표현은 문자열 (""으로 구분됨)이 해당 발생시에 "으로 끝나지 않아야한다는 것을 보여야하기 때문에 수행됩니다. 같은 따옴표로 구분 된 문자열 리터럴에 따옴표를 써야한다면 백 슬래시로 이스케이프 처리해야합니다. , 당신이 그것을 사용하는 어떤 환경 그들 때문에

import json 

jsondata = json.dumps({ 
    "cols": [{"et": "cetera"}], 
}) 
+0

두 분 모두에게 감사드립니다. - Google 차트로 전달하는 데 정말 효과적이었습니다. 그러나 이상한 행동의 종류 .... @RemcoGerlich 그 가능성을 보았습니다. 그러나 기존의 jsondata를 확장 할 해결책을 찾지 못했기 때문에 문자열로 구축하는 것에 비해 보너스를받지 못했습니다. 예 : 하나 이상의 값을 추가하고 하위 레벨을 추가합니다. 데 그 준위 ''{ \t "A"나중에 B 추가 : 1 \t "B": [{ \t \t "A"1 \t}, { \t \t "B" : 2 \t} }''' –

+0

@ MatthisR.Wiora : MatthisR.Wiora : 먼저 일반 파이썬 사전을 빌드합니다.이 파이썬 사전은 완벽해질 때까지 변경하고 확장 할 수 있습니다. 그리고 마지막에는 json.dumps를 호출하여 이것을 돌리십시오 문자열로. – RemcoGerlich

+0

나는 그것을 시도 할 것이다 - 감사합니다! –