1. ホーム
  2. パイソン

JSONデータのパースでValueErrorが発生しました。JSONオブジェクトをデコードできませんでした

2022-02-28 11:07:52
トレースバック(最も最近の呼び出し)。



  ファイル "dataDeal.py", 行 28, in <module>



    createJson("/home/wcs/train2014.json","/home/wcs/train")



  ファイル "dataDeal.py", 行 8, in createJson



    data=json.load(f)



  ファイル "/home/wcs/anaconda2/lib/python2.7/json/__init__.py", 行 291, in load



    **kw)



  ファイル "/home/wcs/anaconda2/lib/python2.7/json/__init__.py", ライン 339, in loads



    return _default_decoder.decode(s)



  ファイル "/home/wcs/anaconda2/lib/python2.7/json/decoder.py", 行 364, in decode



    obj, end = self.raw_decode(s, idx=_w(s, 0).end())



  ファイル "/home/wcs/anaconda2/lib/python2.7/json/decoder.py", 行 382, in raw_decode



    raise ValueError("No JSON object could be decoded")



ValueError: JSONオブジェクトをデコードできませんでした





以下のようなJSONの手垢のせいでこのようなエラーになるんです。

{  



   "info":{。 



      "説明":"電車の犬の画像"。



      "url":。



      "version":"1.0",



      "年":2017年



   },



   画像"画像":[]。



}



urlにカンマを入れるだけではダメなので、このエラーの原因の一つはJSONファイルが間違っていることだと思います。ここにコンテンツをコピーして間違って書いたかどうかチェックしてください https://jsonformatter.curiousconcept.com/ そしてオンラインでチェックしてください

参考までにJSONファイルを書いたプログラムはこちら、画像情報を作成するプログラムはこちらです。

インポート json



インポート os



from PIL import Image











def createJson(path,dogPath):



をopen(path,'r')をfとした場合。



data=json.load(f)



imagesInfo=[]



typeFiles=os.listdir(dogPath)



for dog in typeFiles:



dogImages=os.listdir(os.path.join(dogPath,dog))



for dogImg in dogImages:



imgPath=os.path.join(dogPath,dog,dogImg)



img=Image.open(imgPath)



width=img.size[0]の場合



height=img.size[1]です。



idNum=dogImg.split('.') [0] です。



dogDict={'license':dog,'file_name':dogImg,'height':height,'width':width,'id':idNum}.



imagesInfo.append(dogDict)を追加します。



データ['images']=imagesInfo



をopen(path,'w')as fileとした場合。



json.dump(データ,ファイル)







createJson("/home/wcs/train2014.json","/home/wcs/train")



最初のパラメータは言うまでもなく、書き出したいJSONファイル、2番目のパラメータはtrainで渡された画像ファイルのパスです trainの下には、さらに多くの画像が入ったフォルダが存在します

結果は次のようになります。

{"info": {"version": "1.0", "description": "the val dog images", "year": 2017}, "images": [{"id": "1601053770,2434600106", "file_name": "1601053770,2434600106.jpg", "width": 636, "license": "81" , "height": 433}, {"id": "566704649,1846734015", "file_name": "566704649,1846734015.jpg", "幅": 350, "license": "81", "height": 450}, {"id": "566704649,1846734015" quot;.450}, {"id": "3134450397,2844321447", "file_name": "3134450397,2844321447.jpg", "width": 600, "license": "81" , "height": 387}, {"id": "1181240440,1441438354", " ;file_name": "1181240440,1441438354.JP, "1181240440,1441438354. jpg", "width": 780, "license": "81", "height" : 517}, {"id": "1536683132,3786087832" , "file_name": "1536683132,3786087832.JP;; {{"id_width": 15366832.JP;; "id_width";; "1536687832.JP jpg", "幅& quot;: 575, "license": "81", "height": 512}, {"id": "608206698,1961451584", "file_name": "name": "608206698,1961451584.jpg"; "width"(Width&Width=1.4): 529, "license": "81", "height": 800}, { "id": "2909808636,1613402380", "file_name": "2909808636,1613402380.jpg", "width": 300 , "license": "81", "height": 300}, {"id": "2151502926,1713523353", "file_name" ;: "2151502926,1713523353.jpg", "width": 600, "license": "81", "height";: 339}, {"id ": "326703502,1581517315", "file_name": "326703502,1581517315.jpg", "width": 640, "license}。