1. ホーム
  2. python

[解決済み] TypeError: PythonでJSONをパースするとき、文字列のインデックスは整数でなければなりませんか?

2022-01-28 14:48:17

質問

なぜこのJSON文字列をパースすることができないのか、今混乱しています。同様のコードは、他のJSON文字列では正常に動作しますが、この文字列では動作しません - 私はJSON文字列をパースし、JSONからスクリプトを抽出しようとしています。

以下は私のコードです。

for step in steps:
    step_path = '/example/v1' +'/'+step

    data, stat = zk.get(step_path)
    jsonStr = data.decode("utf-8")
    print(jsonStr)
    j = json.loads(json.dumps(jsonStr))
    print(j)
    shell_script = j['script']
    print(shell_script)

そのため、最初の print(jsonStr) は次のように出力されます。

{"script":"#!/bin/bash\necho Hello world1\n"}

そして、2番目の print(j) は、このように印刷されます。

{"script":"#!/bin/bash\necho Hello world1\n"}

そして、3つ目のプリントはプリントアウトされず、次のようなエラーが表示されます。

Traceback (most recent call last):
  File "test5.py", line 33, in <module>
    shell_script = j['script']
TypeError: string indices must be integers

では、私はここで何を間違えているのでしょうか?

私はJSONをパースするために同じ上記のコードを使用し、それは正常に動作しています。

解決方法は?

を置き換えてみてください。 j = json.loads(json.dumps(jsonStr))j = json.loads(jsonStr) .