Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在从json加载时将字符串转换为列表_Python_Json - Fatal编程技术网

Python 如何在从json加载时将字符串转换为列表

Python 如何在从json加载时将字符串转换为列表,python,json,Python,Json,下面是Json。从json加载后,我需要转换为list。我得到的是str { "1": { "Data (L)": "[ { \"S\" : \"168\" }]" }, "2": { "Data (L)": "[ { \"S\" : \"169\" }]" }

下面是Json。从json加载后,我需要转换为list。我得到的是str

{
  "1": {
    "Data (L)": "[  { \"S\" : \"168\" }]"
  },
  "2": {
    "Data (L)": "[  { \"S\" : \"169\" }]"
  }
}
代码

我的pfl类型是
,其中
l
的输出是
[{“S”:“168”}]

预料之外


打印类型(l)必须是列表而不是str,我假设您有双编码的json。只需对第二个字典的值调用另一个
json.loads()

import json

json_text = r'''{
  "1": {
    "Data (L)": "[  { \"S\" : \"168\" }]"
  },
  "2": {
    "Data (L)": "[  { \"S\" : \"169\" }]"
  }
}'''

data = json.loads(json_text)

for k, v in data.items():
    for kk, vv in v.items():
        vv = json.loads(vv)
        print(type(vv))
        print(vv)
印刷品:

<class 'list'>
[{'S': '168'}]
<class 'list'>
[{'S': '169'}]

[{'S':'168'}]
[{'S':'169'}]
这不是推荐的方法! 以这种方式使用功能是不安全的。看见(感谢您的支持!)

相反,可以使用。看见(感谢您的支持!)


下面的初始答案

您可以使用内置函数,如下所示:

s=“[{\'s\':\'168\'}”
t=评估值(s)
打印(t)
印刷品(t型)
打印(t[0])
打印(类型(t[0]))
哪张照片

[{'S':'168}]
{S':'168'}

您可以编辑您的问题并将预期结果放在那里吗?好的,但是为什么您的json包含这些奇怪的字符串,而不是您想要的结构化数据?请不要为此推荐
eval
。它不安全。@KarlKnechtel谢谢您的评论!我不自豪地说,但我不知道。相反,更好的选择是
<class 'list'>
[{'S': '168'}]
<class 'list'>
[{'S': '169'}]