python str 데이터 dict 타입으로 변환방법
조회수 2337회
안녕하세요. 데이터 분석을 하던 와중에 아무리 구글링을 해봐도 해결이 되지 않는 문제가 있어 질문드립니다 !
밑에 코드에서 data 와 data1은 둘다 str타입이고, 구조도 비슷해보이는데 data는 ast를 이용하여 쉽게 dict로 변환이 되지만, data1은 'malformed node or string'에러가 발생합니다.
해결방법 알려주시면 정말감사드리겠습니다 !
개발환경 python 3.6 win10
//
import ast
data = '{"table":"orderBook10","action":"update","data":[{"symbol":"XBTUSD","asks":[[7746,1112939],[7746.5,254534],[7747,91312],[7747.5,28998],[7748,72282],[7748.5,6216],[7749,8867],[7749.5,723855],[7750,34774],[7750.5,24855]],"timestamp":"2019-06-05T07:07:24.138Z","bids":[[7745.5,20573],[7745,19865],[7744.5,327373],[7744,52957],[7743.5,38961],[7743,78857],[7742.5,23332],[7742,14815],[7741.5,157590],[7741,288256]]}]}'
data1 = '{"table":"order","action":"update","data":[{"orderID":"6f2d7a84-ee8f-4c63-da1a-e7c4a827c2ea","ordStatus":"Filled","workingIndicator":false,"leavesQty":0,"cumQty":100,"avgPx":8010.5,"clOrdID":"","account":257426,"symbol":"XBTUSD","timestamp":"2019-06-12T13:47:54.079Z"}]}'
d = ast.literal_eval(data1)
print(type(d), d)
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
json 데이터네요.
eval로 처리하면서 에러가 발생하는 이유는 파이썬에서는
false
가 아닌,False
로 쓰기 때문입니다.json 문자열이니까,
literal_eval
을 쓰는 것 보다 더 정확한 것은, json 을 이용하는 것이겠습니다.import json d = json.loads(data1)
댓글 입력