JSONデータのパースでValueErrorが発生しました。JSONオブジェクトをデコードできませんでした
ファイル "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}。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AttributeError: 'datetime' モジュールには 'strptime' という属性がありません。
-
[解決済み】__init__で「このコンストラクタは引数を取らない」というエラーが発生する。
-
[Python] TypeError: ハッシュ化できない型: 'numpy.ndarray'
-
[解決済み] ValueError: データ型はitemizeを提供しなければなりませんか?
-
[解決済み] tkinterで円を描くより簡単な方法?
-
[解決済み] websocket' という名前のモジュールがない
-
[解決済み] リストにforループを追加する
-
[解決済み] Pycharm エラー Django はこの環境ではインポートできません。
-
[解決済み] 空白をアンダースコアに置き換えるには?
-
Fatal Python error: init_fs_encoding: failed to get Python codec of filesystem encoding