使用json模块将str(list)转换为列表

时间:2018-11-27 14:49:35

标签: python json

当使用带有json.loads的str加载字符串化列表时,出现ValueError。 例如

l = ['a', 'b']
l_str = str(l)
l_loaded = json.loads(l_str)

但是,这可行:

x = '["a", "b"]'
x_loaded = json.loads(x)

这是为什么?

3 个答案:

答案 0 :(得分:4)

尝试打印出l_str的值。您会看到

['a', 'b']

不是

["a", "b"]
与之比较的

即使这种情况发生了,混淆这样的格式也不是一个好主意。如果有人出现并给您列表[None, object(), open("/usr/bin/python3", "r")]怎么办? 那个字符串化后绝对不是有效的JSON。

答案 1 :(得分:3)

JSON语法不是Python语法。 JSON的字符串需要双引号。

答案 2 :(得分:3)

因为str()默认使用简单的引号,而JSON需要双引号。

有关str()的更多详细信息,请参见this