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

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

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

655閲覧

Python jsonのエラーについて

yuto36

総合スコア16

JSON

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2019/02/25 16:41

編集2019/02/26 08:12

前提・実現したいこと

python初心者です。
どうか、ご教授お願い致します。

  1. jsonで読み込んだファイルのディレクトリを作成したいです。
  2. そしてできたディレクトリの配下にjsonファイルを5個作成します。
  3. ファイル名は 01.json, 02.json のように連続したファイル名にします。

説明が至らないかと思いますが、よろしくお願い致します。

発生している問題・エラーメッセージ

エラーメッセージ 'NoneType' object is not iterable フォルダはできるのですが、その次のファイル名を作成する時に 上記のエラーがでます。

該当のソースコード

folder_name = './' + re.search('[^\x01-\x7E]+', self.json_path).group() print(folder_name) # ディレクトリを作成する os.makedirs(folder_name) for i, y in enumerate(self.items): file_name = None file_num = i + 1 if file_num < 5: file_name = '0' + str(file_Num) else: file_name = str(file_Num) file = open(dir_name + '/' + file_name + '.json', 'w') json.dump(y, file, ensure_ascii=False, indent=4, sort_keys=True)

###追記

申し訳ございません。 tracebackの意味を理解していません。 なのでエラーメッセージを掲載します。 --------------------- 例外が発生しました: TypeError 'NoneType' object is not iterable File "/Users/Desktop/json.py", line 86, in export for i, y in enumerate(self.items): File "/Users/json.py", line 102, in <module> export() File "/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) --------------------- このようなエラーがでました。

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

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

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

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

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

hayataka2049

2019/02/25 16:52

エラーメッセージはtraceback含めて全文掲載してください
tachikoma

2019/02/25 23:21

これ、クラスメソッドの一部ですよね。少なくともself.itemsが何者かわからないと答えようがないです。
t_obara

2019/02/26 01:32

1から3のうち、どこまでできていてどこができていないのかをご提示されると良いです。また、初心者であれば、まずは1を単体で確認し、できたら2を単体で確認していくように、単純なコードにして全て動きを確認したのち、組み合わせて確認していくとよろしいかと思います。
yuto36

2019/02/26 08:20

hayataka2049さん: エラーメッセージ掲載しました。
yuto36

2019/02/26 08:21

tachikomaさん: クラスメソッドの一部です。self.itemsはjsonファイルの辞書型の中にあるitemsです。
yuto36

2019/02/26 08:21

t_obaraさん: 1でディレクトリはできています。debugしたところ、ディレクトリ配下にファイルを作成する際に 'NoneType' object is not iterable が出てしまい、ファイルが作成できない状態です。
tachikoma

2019/02/26 10:44

self.itemsがNoneになっており、enumerateの引数には出来ません。と言うのがエラーメッセージの意味です。エラー発生時のself.itemsの状態を確認してみて下さい。
yuto36

2019/02/27 17:13

ご教授ありがとうございます。 ご指摘の通り、self.itemsの設定の部分が抜けていました。 あと下から2番目のコードもインデントを直しました。if文の中に入っていたのでそこも 直したら、無事にディレクトリの配下にファイルが生成されました。
guest

回答1

0

自己解決

ご指摘の通り、self.itemsの設定の部分が抜けていました。
あと下から2番目のコードもインデントを直しました。if文の中に入っていたのでそこも
直したら、無事にディレクトリの配下にファイルが生成されました。

投稿2019/02/27 17:28

yuto36

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問