我现在感到困惑,为什么我无法解析此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"}

第二个print(j)将打印出这样的内容-
{"script":"#!/bin/bash\necho Hello world1\n"}

然后没有打印出第三张照片,它给出了这个错误-
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)

09-16 04:13