前提・実現したいこと
Python3.7において複数の.jsonlファイルを一括でDataFrameにいれたい
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-365cc4cf31ce> in <module> 5 6 for filename in all_files: ----> 7 df = pd.read_json(filename, orient='records', lines=True) 8 li.append(df) 9 ~\anaconda3\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs) 212 else: 213 kwargs[new_arg_name] = new_arg_value --> 214 return func(*args, **kwargs) 215 216 return cast(F, wrapper) ~\anaconda3\lib\site-packages\pandas\io\json\_json.py in read_json(path_or_buf, orient, typ, dtype, convert_axes, convert_dates, keep_default_dates, numpy, precise_float, date_unit, encoding, lines, chunksize, compression) 606 return json_reader 607 --> 608 result = json_reader.read() 609 if should_close: 610 filepath_or_buffer.close() ~\anaconda3\lib\site-packages\pandas\io\json\_json.py in read(self) 727 elif self.lines: 728 data = ensure_str(self.data) --> 729 obj = self._get_object_parser(self._combine_lines(data.split("\n"))) 730 else: 731 obj = self._get_object_parser(self.data) ~\anaconda3\lib\site-packages\pandas\io\json\_json.py in _get_object_parser(self, json) 751 obj = None 752 if typ == "frame": --> 753 obj = FrameParser(json, **kwargs).parse() 754 755 if typ == "series" or obj is None: ~\anaconda3\lib\site-packages\pandas\io\json\_json.py in parse(self) 855 856 else: --> 857 self._parse_no_numpy() 858 859 if self.obj is None: ~\anaconda3\lib\site-packages\pandas\io\json\_json.py in _parse_no_numpy(self) 1106 else: 1107 self.obj = DataFrame( -> 1108 loads(json, precise_float=self.precise_float), dtype=None 1109 ) 1110 ValueError: No ':' found when decoding object value
該当のソースコード
Python3.7
1path = "/Users/user/Desktop/video.jsonl" 2all_files = glob.glob(path+"/*.jsonl") 3 4li = [] 5 6for filename in all_files: 7 df = pd.read_json(filename, orient='records', lines=True) 8 li.append(df) 9 10frame = pd.concat(li, axis=0, ignore_index=True)
試したこと
単体の読み込みではエラーが発生しない
for文内でfilenameをprintすると
/Users/user/Desktop/video.jsonl\0000.jsonl
となってしまうので
filename2=filename.replace(chr(92),"/")
を用いて置換したが同様のエラーが発生した。
パスを直接書き込む場合は失敗しない
補足情報(FW/ツールのバージョンなど)
Python3.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。