0
수백만 줄의 큰 json 파일이 있습니다. 이 파일에도 오류 메시지가 있습니다. 아래는 예입니다팬더를 사용하여 json 라인을 파싱
예상대로{"MEASUREMENT_1":"12345678","MEASUREMENT_2":"123456789012","MEASUREMENT_3":"MEASUREMENT_TYPE","MEASUREMENT_4":1111111111111,"MEASUREMENT_5":-1122,"MEASUREMENT_6":-2233,"MEASUREMENT_7":"123456789"}
{"MEASUREMENT_1":"87654321","MEASUREMENT_2":"98","MEASUREMENT_3":"MEASUREMENT_TYPE_2","MEASUREMENT_4":222222222222,"MEASUREMENT_5":-4455,"MEASUREMENT_6":-6677,"MEASUREMENT_7":"123456789"}
[2015-12-02 02:00:02,530] WARN Reconnect due to socket error: null
[2015-12-02 02:00:02,633] WARN Reconnect due to socket error: null
은, 아래의 코드 때문에 파일에 오류 메시지 라인의 ValueError
가 발생합니다.
max_records = 1e5
df = pd.read_json(file, lines=True, chunksize=max_records)
filtered_data = pd.DataFrame() # Initialize the dataframe
try:
for df_chunk in df:
filtered_data = pd.concat([filtered_data, df_chunk])
except ValueError:
print ('\nSome messages in the file cannot be parsed')
그러나 위의 방법의 단점은 라인의 일부를 벗어났습니다입니다 :이로
#!/usr/bin/python3.5
import pandas as pd # Version 0.21.0
df = pd.read_json(file, lines=True)
나는 chunksize
사용하고 같은 아래 expection는 매우 큰 파일입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html의 문서를 살펴 보았지만 해석되지 않은 행을 무시할 수있는 항목을 찾을 수 없습니다. 누군가 도울 수 있습니까?
이 줄을 제거하는 것이 가능한가? –
각 "측정"이 자체 json 객체 인 것처럼 보이므로 파일에 json 객체가 많고 그 중 하나가 많아서 실패 할 수 있습니다. –
for 루프의 각 반복 안에 try 블록이 아닌 try 블록 내부에 for 루프가있는 이유는 무엇입니까? – Acccumulation