나는 팰콘 프레임 워크를 사용하는 Python 3.4로 작성된 웹 서비스를 가지고 있습니다. 한 가지 특별한 방법은 json 값의 게시물을 허용합니다. 내 코드 :Python json.loads()가 json 문자열을 구문 분석하지 못했습니다.
try:
raw_json = req.stream.read()
except Exception as ex:
raise falcon.HTTPError(falcon.HTTP_400, 'Error', ex.message)
try:
result_json = json.loads(raw_json.decode('utf-8'))
except ValueError:
raise falcon.HTTPError(falcon.HTTP_400,
'Malformed JSON', 'Could not decode the request body. The JSON was incorrect.')
clientIp = result_json['c']
wpIp = result_json['w']
lan = result_json['l']
table = int(result_json['t'])
이 코드 9 개월 전 잘 작동하지만, 현재 오류가 발생했다 ". 목록 지수는 str에하지, 정수 또는 조각이어야합니다" 파이썬이나 팔콘 패키지 업데이트 후에 파산되었을 가능성이 있습니다.
raw_json.decode ('utf-8')의 출력은 [{ "w": "10.191.0.2", "c": "10.191.0.3", "l": "255.255. 255.0 ","t ":"4 "}]. json.loads()가 내 문제의 근원이라고 생각합니다. len (result_json)이 예상 한대로 1을 반환합니다. 4 json.loads()가 올바르게 구문 분석하는 데 필요한 추가 매개 변수가 있습니까? 아니면 완전히 다른 것을 놓치고 있습니까?
감사 그레그 (파이썬 놈)
합니다. 감사. 나는 그것이 단순한 것이라고 생각했다. –
어떤 경우에는 둘 이상의 결과가 있다는 것을 의미 할 수도 있으므로'result_json'을 반복하고'dict' 각각에서'c '값을 얻고 싶을 수도 있습니다. 인덱스 0에서 색인 만하면 다른 중요한 데이터를 놓친 지 알 수 없습니다. – ShadowRanger
들어오는 요청을 제어하기는하지만 좋은 지적이지만 단일 항목 일뿐입니다. –