質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

4713閲覧

jsonl形式のファイルが読み込めない

Kokku

総合スコア39

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/02 12:08

編集2021/04/03 12:23
filename = "sample.json" df = pd.read_json(filename,lines=True)

このコードを実行してjsonl形式のファイルを読み込みたいのですがエラーが出てしまいます。
lines=Trueを追加すると解決したケースも見つけたので追加してみたのですが追加しても同じ内容のエラー内容が出力されました。

(env2) E:\facepp-python-demo-master\facepp-python-demo-master\example\detect>python face3.py Traceback (most recent call last): File "face3.py", line 18, in <module> df = pd.read_json(filename, lines=True) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\util\_decorators.py", line 199, in wrapper return func(*args, **kwargs) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\util\_decorators.py", line 299, in wrapper return func(*args, **kwargs) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 563, in read_json return json_reader.read() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 692, in read obj = self._get_object_parser(self._combine_lines(data_lines)) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 716, in _get_object_parser obj = FrameParser(json, **kwargs).parse() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 831, in parse self._parse_no_numpy() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 1079, in _parse_no_numpy loads(json, precise_float=self.precise_float), dtype=None ValueError: Unexpected character found when decoding array value (2)

このプログラムは書き込み用に書いたものです。ここに原因があるかもしれないので念のため載せています

with open('emotion.csv','a') as csv_file: writer = csv.writer(csv_file) writer.writerows(resp) for key, value in resp.items(): (pd.DataFrame.from_dict(data=resp,orient='index').to_csv('emotion.csv',header=False)) osp =resp['faces'] json_file = open("emotion.json","a") json.dump(osp,json_file)

これはFace++のAPIで顔表情の推定結果を繰り返し処理し一つのファイルにまとめたものです。
ospの型はリストでした

処理を行いたいファイル

追加emotion.json

サイトで調べてみても見つからなかったので質問させていただきました。

python windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2021/04/03 09:11

エラーメッセージは最後の行だけでなく、全て掲載してください。発生箇所の情報などの有用な情報が載っています。
Kokku

2021/04/03 09:15

ご指摘ありがとうございます。追記しました。
Kokku

2021/04/03 10:03

ありがとうございます。僕が載せてあるスクリーンショットにもあるように2行目の二つ目の情報が記載されている箇所がエラーの原因のようです。jsonlとして認識されていないのか、jsonlファイル形式保存時になにか別で指定しなければいけないものがあるのかなど考えれますが、コードなどにおかしな箇所はありますでしょうか。
bsdfan

2021/04/03 12:09

ospがリストなら、作成されるjsonは、[]で囲まれたものになると思うのですが、何かここに書かれた以外の処理を追加でしていますか?
Kokku

2021/04/03 12:24

開くファイルを間違えておりました。追加しました。やはり二つ目のリストでエラーが起こってそうです。
TakaiY

2021/04/03 13:38

? 読込みたいのは、2つめのキャプチャのデータということですか? であれば、これはjsonl ではないので、普通に読み込めるのでは?
Kokku

2021/04/03 13:44

同じエラーが出てしまいます。orient='records'をつけるとValueError: Unexpected character found when decoding array value (2)のエラーに変わりました。
TakaiY

2021/04/03 13:53

jsonlでなければ、オプションはいらないと思うのですが、オプション無しだと▽どうなりますか?
Kokku

2021/04/03 13:55

lines=Trueもいらないということでしょうか?
TakaiY

2021/04/03 14:00

jsonlでなくjsonということであればそうです。
Kokku

2021/04/03 14:01

Traceback (most recent call last): File "face3.py", line 18, in <module> df = pd.read_json(filename) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\util\_decorators.py", line 199, in wrapper return func(*args, **kwargs) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\util\_decorators.py", line 299, in wrapper return func(*args, **kwargs) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 563, in read_json return json_reader.read() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 694, in read obj = self._get_object_parser(self.data) File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 716, in _get_object_parser obj = FrameParser(json, **kwargs).parse() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 831, in parse self._parse_no_numpy() File "C:\Users\shota\anaconda3\envs\env2\lib\site-packages\pandas\io\json\_json.py", line 1079, in _parse_no_numpy loads(json, precise_float=self.precise_float), dtype=None ValueError: Trailing data という結果が出てきました。
TakaiY

2021/04/03 14:09

そのエラーからすると、そのファイルもjsonlみたいですね。 だとすると、あとは、1行ずつ読んでread_jsonしてみてだめだデータをチェックするくらいしか思いつきませんね。
guest

回答2

0

自己解決

明確な原因はまだわかりませんがjsonlファイル内にFace++のAPIで感情推定できなかったからのリストがあるからだと思います。しかし質問に載せてある一枚目の画像のファイルには空のリストが入っていなかったです。からのリストを削除してカンマでそれぞれのjson形式辞書型を区切り一つのリストにしたらエラーなく出力されるようになりました。

投稿2021/04/05 13:09

Kokku

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下のような例をみつけたのですがorientパラメータを付けてたらどうでしょうか。

python

1pd.read_json(s_jsonl, orient='records', lines=True)

投稿2021/04/02 13:29

TakaiY

総合スコア12830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kokku

2021/04/02 14:50

エラー内容が間違えておりましたので訂正しました。 orientを指定しても変化はなかったです。
TakaiY

2021/04/03 09:51

エラーの内容をみると、jsonの内容が不正であることが原因のようですね。 目で見てわかるといいのですが、 - 行によって内容が異なっていたりしないか。 - jsonとして不正なデータが含まれていないか あたりを確認してみてはどうでしょう。 jsonの確認には以下のサイトが使えます。 沢山あるとたいへんですが。 https://jsonlint.com/
Kokku

2021/04/03 10:03

ありがとうございます。僕が載せてあるスクリーンショットにもあるように2行目の二つ目の情報が記載されている箇所がエラーの原因のようです。jsonlとして認識されていないのか、jsonlファイル形式保存時になにか別で指定しなければいけないものがあるのかなど考えれますが、コードなどにおかしな箇所はありますでしょうか。
TakaiY

2021/04/03 12:20

コードとしておかしなところあなさそうです。 2行目ということではなく、どこかのレコードに変なリストが含まれている、もしくは、他の行ではリストなのにそこだけ数値や空白になっているなどしているのではないかと思います。 画像の右にどれくらいデータがあるのかわかりませんが、その中ではないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問