1. ホーム
  2. Python

Pythonのjson.loadsで文字列のデコードに失敗しました。ValueError: JSONオブジェクトをデコードできませんでした

2022-02-20 14:40:18

元記事へのリンクです。 http://www.crifan.com/python_json_loads_valueerror_no_json_object_could_be_decoded/

[質問】です。]

投げる。

[未解決】Pythonでjson.loadを使った文字列のデコードに失敗する。ValueError: プロパティ名を期待:行1列1(文字数1)

この処理の結果、別のエラーが発生しました。

<テーブル

LINE 106 : INFO photoInfoJson={id:'379879-87329678′,owner:'379879′,ownerername:'shanshu' ,title:'IMG_3464′,description:",bucket:'shanshu',key:'CsFzMuHz ',license:0,stats_notes: 0,アルバム ['379879-18 
の作者です。'379879'}],owner:{id: 379879,ユーザー名:'shanshu',ニックネーム:'shanshu'}}。 
LINE 110 : INFO photoInfoJsonAddQuote={'id':'379879-87329678′,'owner': '379879′,'ownerername':'shanshu','title': 'IMG_3464′,'description': ",'bucket':'shanshu ','key':'CsFzMuHz','license':'0,' stats_not
es': 0,'albums': ['379879-181880′,], 'tags':[{' name':'20121202′, 'author':'379879'},{'name ':'▷ Ba braid branding scandal', 'author':'379879'}], 'owner': {'id': 379879,'ユーザー名': 'shanshu ','ニックネーム': 'shanshu' 
}} 
LINE 112 : INFO photoInfoJsonDoubleQuote={"id":"379879-87329678","owner":"379879","ownername":"shanshu","title": "IMG_3464","description":"","bucket" :"shanshu","key":"CsFzMuHz","license":0,"stats_...
notes"。0,"アルバム": ["379879-181880",],"tags":[{"name":"20121202", " :{"id": 379879,"ユーザー名": "shanshu","ニックネーム": "shans。 
hu"}}

....

....

photoInfoDict = json.loads(photoInfoJsonDoubleQuote); 
ファイル "D:\tmpdev_install_root 
return _default_decoder.decode(s) 
ファイル "D:\tmp_dev_install_root ↪Python27_x64↩↪Python27↩json_decoder.py", 行 366, in decode 
obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
ファイル "D:\tmp_dev_install_root ↪Python27_x64↩⌋ jsondecoder.py", 行 384, in raw_decode 
raise ValueError("No JSON object could be decoded") 
ValueErrorです。JSONオブジェクトをデコードできませんでした

[解決プロセス】。]

1. で自分の投稿を参照する。

[解決済み】PythonでJsonファイルをパースする際にエラーが発生する。ValueError : No JSON object could be decoded -> PythonのJsonライブラリはBOM付きのUTF-8をサポートしていません。

続けて、encodingパラメータを追加してみてください。

<テーブル
1
2
3
4
5
6
7
8
9
10
11
photoInfoJsonAddQuote 

結果、問題は解決されないままです。

理由はわかっているのですが、ここではjsonライブラリがBOM付きのUTF-8に対応していないため、photoInfoJsonという文字列が取得されています。

そのため、notepad++などでBOMなしのUTF-8に変換する方法がない。

だから、もう一度考える必要がある。

2. 結果を手動で再デコードし、再エンコードする。

<テーブル
1
2
3
4
5
6
7
8
9
10
11
12
13
=