別プログラムで出力されたjsonファイルをpythonで読み込みたいのですが、https://lets-emoji.com/emojilist/のような絵文字が含まれているためか
data = json.load(fileopen)の部分でエラーになります。
できれば絵文字のまま扱いたいんですが、可能なんでしょうか?
ご教示いただきたいです。
import json filename = '[ファイル名]' # json拡張子 fileopen = open(filename, mode='r') data = json.load(fileopen) fileopen.close() print(data)
エラーの内容
Traceback (most recent call last): File "[パス]/getjson.py", line 5, in <module> data = json.load(fileopen) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load return loads(fp.read(), File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 340, in decode raise JSONDecodeError("Extra data", s, end) json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 787)
エラーが出るならエラーメッセージを提示しましょう
> data = json.load(fileopen)の部分でエラーになります。
どんなエラーでしょうか?
申し訳ありません。
エラー内容追記しました。
実際のファイルの内容、先頭2行程度をテキストとして提示することは可能でしょうか?
絵文字の有無とは関係なく、ファイル内容がJSON形式ではなくJSON Lines形式であることが原因ではないかと推測しています。
json.loads(XXXX, strict=False) とした場合はどうなりますか?
>実際のファイルの内容、先頭2行程度をテキストとして提示することは可能でしょうか?
>絵文字の有無とは関係なく、ファイル内容がJSON形式ではなくJSON Lines形式であることが原因ではな>いかと推測しています。
内容はTwitterのスクレイピングなので、以下にUPします。
2レコード分です。
{"id": 1401157435599978503, "conversation_id": "1401157435599978503", "created_at": "2021-06-05 21:42:19 JST", "date": "2021-06-05", "time": "21:42:19", "timezone": "+0900", "user_id": 814893804, "username": "__aomickey", "name": "©️", "place": "", "tweet": "うちわ忘れないように早めに福岡の荷造りしたい!!!!!!←気持ちだけ", "language": "ja", "mentions": [], "urls": [], "photos": [], "replies_count": 0, "retweets_count": 0, "likes_count": 0, "hashtags": [], "cashtags": [], "link": "https://twitter.com/__aomickey/status/1401157435599978503", "retweet": false, "quote_url": "", "video": 0, "thumbnail": "", "near": "", "geo": "", "source": "", "user_rt_id": "", "user_rt": "", "retweet_id": "", "reply_to": [], "retweet_date": "", "translate": "", "trans_src": "", "trans_dest": ""}
{"id": 1401157435587366912, "conversation_id": "1401155524242993153", "created_at": "2021-06-05 21:42:19 JST", "date": "2021-06-05", "time": "21:42:19", "timezone": "+0900", "user_id": 1254788761705054217, "username": "mei_uo__ou", "name": "めいς➹", "place": "", "tweet": "@sub_sera でぃふぃとばんちょーの差wwwww ばんちょーのこと好きすぎかw 可愛すぎます????", "language": "ja", "mentions": [], "urls": [], "photos": [], "replies_count": 0, "retweets_count": 0, "likes_count": 0, "hashtags": [], "cashtags": [], "link": "https://twitter.com/mei_uo__ou/status/1401157435587366912", "retweet": false, "quote_url": "", "video": 0, "thumbnail": "", "near": "", "geo": "", "source": "", "user_rt_id": "", "user_rt": "", "retweet_id": "", "reply_to": [{"screen_name": "sub_sera", "name": "ς➹:せ????‼️", "id": "853707596355608576"}], "retweet_date": "", "translate": "", "trans_src": "", "trans_dest": ""}
>json.loads(XXXX, strict=False) とした場合はどうなりますか?
以下のエラーが出ました。
Traceback (most recent call last):
File "/[パス]/getjson.py", line 5, in <module>
data = json.load(fileopen, strict=False)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load
return loads(fp.read(),
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 359, in loads
return cls(**kw).decode(s)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 851)
回答1件
あなたの回答
tips
プレビュー