Python 如何将对象数组的字符串表示形式转换为对象数组?ast不';好像不行
要将对象数组转换为字符串,我可以使用Python 如何将对象数组的字符串表示形式转换为对象数组?ast不';好像不行,python,arrays,string,type-conversion,Python,Arrays,String,Type Conversion,要将对象数组转换为字符串,我可以使用str(arr) 反过来,是否有一个内置Python函数将对象数组的字符串表示形式转换为对象数组 换句话说,如何将“[{'key1':'val1','key2':'val2'}]”转换回对象数组?我想用split来做,但它不像str()那样干净 我会得到ValueError:格式错误的节点或字符串:以防您想将其标记为重复并关闭。Python打印列表不会产生'[{“a”:null,“b”:true}]。这看起来更像是[{'a':None,'b':True}]中的
str(arr)
反过来,是否有一个内置Python函数将对象数组的字符串表示形式转换为对象数组 换句话说,如何将
“[{'key1':'val1','key2':'val2'}]”转换回对象数组?我想用split
来做,但它不像str()
那样干净
我会得到ValueError:格式错误的节点或字符串:以防您想将其标记为重复并关闭。Python打印列表不会产生'[{“a”:null,“b”:true}]
。这看起来更像是[{'a':None,'b':True}]
中的json序列化列表,所以您可以使用json.loads
。不要执行str1.replace(“'”,“'”)
thing,因为它可能会损坏数据中的实际字符串值。@wim我从API获取此信息,因此我无法控制输入。我同意str.replace
会损坏实际字符串值,但ast在这里不起作用。您知道如何处理此问题吗?如果您是从API获取此信息,则可能是JSON,因此请使用json.loads()
@Barmar谢谢。看来json.loads()直接起作用了。
// examples
arr = [{'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, {'key1': 'val1', 'key2': 'val2'}]
arrStr = str(arr)
// "[{'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}, {'key1': 'val1', 'key2': 'val2'}]"
arr2 = [{'key1': 'val1', 'key2': 'val2'}]
arrStr2 = str(arr)
// "[{'key1': 'val1', 'key2': 'val2'}]"
str1 = '[{"a":null,"b":true}]'
arr = ast.literal_eval(str1)
str1 = '[{"a":null,"b":true}]'
arr = json.loads(str1.replace("'",'"'))
// [{'a': None, 'b': True}]