2016-06-20 1 views
1

데이터가 길어서 하나의 작은 조각을 골라 내려고합니다. 문자열의 위치가 항상 변경됩니다. 데이터 샘플은 다음과 같습니다. 나는 stripparse을 연구했지만, strip은 잘못된 선택이지만, parse 일 수도 있습니다. 문자열의 섹션을 제거하거나 데이터를 구문 분석합니까?

Data: {'DriverCarSLFirstRPM': 6000.0, 'DriverCarFuelMaxLtr': 44.987, 'DriverCarMaxFuelPct': 0.3, 'Drivers': [{'CarIsAI': 0, 'LicSubLevel': 1, 'TeamID': 0}

나는 DriverCarFuelMaxLtr의 값을 얻기 위해 노력하고있어. 해당 값 앞뒤에 데이터를 제거해야합니까, 아니면 쉼표로 파일을 분리 한 다음 값을 읽을 수 있습니까?

+0

I가 lstrip과 rstrip을 사용하려고했습니다 내가 필요로하는 데이터로 가져와 - 파싱에는 효과가없고 똑같습니다. –

답변

0

귀하의 JSON은 처음부터 유효하지 않습니다.

이 지금 검증되었습니다 :이 시작하는 데 도움이해야

{ 
    "DriverCarSLFirstRPM": 6000.0, 
    "DriverCarFuelMaxLtr": 44.987, 
    "DriverCarMaxFuelPct": 0.3, 
    "Drivers": [{ 
     "CarIsAI": 0, 
     "LicSubLevel": 1, 
     "TeamID": 0 
    }] 
} 

:

import json 

data = '{"DriverCarSLFirstRPM": 6000.0, "DriverCarFuelMaxLtr": 44.987,"DriverCarMaxFuelPct": 0.3,"Drivers": [{"CarIsAI": 0,"LicSubLevel": 1,"TeamID": 0}]}' 
info = json.loads(data) 
# To get the value of "DriverCarFuelMaxLtr" 
print(info.get('DriverCarFuelMaxLtr')) 

출력 :44.987

+0

입력 해 주셔서 대단히 감사합니다. 그 문자열은 훨씬 더 큰 문자열의 부분 집합이었습니다. 나는 그것을 게시하기 위해 줄였습니다. 브래킷을 다시 추가하지 못한 것을 지적 해 주셔서 감사합니다. 나는 이것을 더 깊이 파헤쳐 보겠다. 그러나 이것은 매우 합리적인 것처럼 보인다. 나는 json에 대한 이전의 경험이 없다 - 나는 나의 독서에 다른 방향이있는 것처럼 보인다. 다시 감사합니다! –

+0

@NickGreen 기꺼이 도와 드릴 수 있습니다. 내 대답을 받아들이시겠습니까? – fuzz

+0

이 솔루션으로 지금까지 발견 된 문제는 제 데이터가 제 3의 프로그램에서 제공된다는 것입니다. 그리고 그것은 모두 단일이 아닙니다. 그래서 나에게는 오류가 발생합니다. 어떤 빠른 해결 방법이 있습니까? –

0

문자열이있는 json 개체가있는 것처럼 보입니다. 당신은 할 수 look into Json.loads(). 또는 내가 실수로 어떤 이유로 사전에 변환 할 수 없으면 정규식 (정규 표현식)을 사용합니다. 정규식에 대해 잘 모르는 경우 this guide을보고 파이썬에서 how to use them을 배울 수 있습니다.

+0

이것은 답변이 아닙니다. 단순히 주석으로 추가 할 수 있습니다. – fuzz

+0

오, 오케이! 나는 그것을 움직여야 하는가? 또한, 나는 언제 대답이나 의견을 사용할 지 잘 모르겠다. –

+1

예, 이동 및 삭제하거나보다 완전한 답변을 작성하십시오. http://stackoverflow.com/help/how-to-answer를 참조하십시오 - 예제를 제공하고 입력에 제안 된 솔루션을 테스트하고 예제 정규식을 보여줍니다. – rrauenza