2014-02-17 1 views
0

가 뭔가 아래처럼 보이는 JSON 파일을 구문 분석하는 것을 시도하고 있습니다 :JSON 오류

{ "results": [ 
{ "ID": "63768E9B-1D66-486A-BCDD-D3991EAFBE94", 
"Dt": "2013-08-03T13:01:26.901Z", 
"Dt_u": "2013-08-03T13:01:26.901Z", 
"obj": "enppXhI7TS" 
}, 
{ 
"ID": "63768E9B-1D66-486A-BCDD-D3991EAFBE94", 
"Dt": "2013-08-03T16:17:33.280Z", 
"Dt_u": "2013-08-03T16:17:33.280Z", 
"obj": "79J5z6y2UR" 
}, 
{ 
"ID": "F8B1B9FB-7BCD-47DF-89BD-241440BB6270", 
"Dt": "2013-08-06T00:23:43.562Z", 
"obj": "Xf75BFtx4O", 
"gender": 2, 
"language": "en" 
}]} 

내가이 파일을로드 할 때 더 많은 항목이

이제 파일에 있습니다 파이썬에서 JSON 파서를 사용하여, 그것은 나에게주는

Traceback (most recent call last): 
    File "E:\test.py", line 8, in <module> 
    data = json.dumps(json_data) 
    File "C:\python27\lib\json\__init__.py", line 243, in dumps 
    return _default_encoder.encode(obj) 
File "C:\python27\lib\json\encoder.py", line 207, in encode 
    chunks = self.iterencode(o, _one_shot=True) 
File "C:\python27\lib\json\encoder.py", line 270, in iterencode 
    return _iterencode(o, 0) 
File "C:\python27\lib\json\encoder.py", line 184, in default 
    raise TypeError(repr(o) + " is not JSON serializable") 
TypeError: <open file 'data.json', mode 'r' at 0x00000000022E6540> is not JSON 
serializable 

[종료 코드 0.9s에 완료 1]

내 코드는 지금 준다

import json 
from pprint import pprint 


json_data=open('data.json','r') 

data = json.dumps(json_data) 
jsondata = data["results"] 

for item in jsondata: 
name = item.get("ID") 
json_data.close() 

< < < < < < >>>>>>>>>>

import json 
from pprint import pprint 


json_data=open('data.json','r') 

data = json.load(json_data) 
jsondata = data["results"] 

for item in jsondata: 
name = item.get("ID") 
json_data.close() 

오류입니다 ->

Traceback (most recent call last): 
    File "E:\test.py", line 7, in <module> 
    data = json.load(json_data) 
    File "C:\python27\lib\json\__init__.py", line 290, in load 
    **kw) 
    File "C:\python27\lib\json\__init__.py", line 338, in loads 
    return _default_decoder.decode(s) 
    File "C:\python27\lib\json\decoder.py", line 365, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "C:\python27\lib\json\decoder.py", line 381, in raw_decode 
    obj, end = self.scan_once(s, idx) 
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc2 in position 2: invalid continuation byte 
[Finished in 0.2s with exit code 1] 

I 일부 유니 코드 데이터와 관련이 있음을 알 수 있습니다. 하지만 어떻게 식별하고 해결합니까?

+0

사용할 필요가 없다? – msvalkon

+0

"obj"다음에 쉼표가 누락되었습니다. "Xf75BFtx4O"는 복사 - 붙여 넣기 오류입니까? – user3

+0

@msvalkon - 코드로 업데이트되었습니다. – Neil

답변

1

읽고있는 파일 인 문자열을 덤프하려고합니다. 기본 문장이 무의미하기 때문에 그 문장을 이해할 수 없습니다. 대신 json.load()을 시도하십시오.

+0

나는 그것을 시도했다. 하지만 지금은 나에게 UnicodeDecodeError를주고있다. 질문에서 업데이트되는 세부 사항 – Neil

+0

새로운 질문이있는 경우 새로운 질문을 엽니 다. –

+0

새로운 질문 http://stackoverflow.com/questions/21823792/json-parsing-in-python-gives-error-unicodedecodeerror – Neil

0

먼저 여기에 붙여 넣은 데이터의 구문 오류가 있습니다. 17 행 끝에 하나의 쉼표가 누락되었습니다.

두 번째로 파일에서 json을로드하려면 json.load (json_data)를 호출해야합니다.

0

첫째, seniorID라는 이름의 키를 두 번째 당신은 당신이 무슨 말을하는거야 JSON 파서 json.load(json_data)

+0

업데이트 된 키 및 json.load – Neil