如何使用python将字符串转换为数组?

时间:2019-08-17 02:16:50

标签: python serialization json-deserialization

如何使用python将字符串转换为数组?

我需要将项目的值转换为数组。

我尝试使用json.loads,但不起作用。

只有ITEMS密钥的值是字符串形式,而正是这个值我需要转换为数组

我在做什么错了?

谢谢。

"metadata": {
        "deleted": "false",
        "low_manual": "false",
        "canceled": "false",
        "items": "[{'descricao': 'ITEM1', 'amount': '200'}, {'amount': '3000', 'descricao': 'ITEm2'}]"
    }

2 个答案:

答案 0 :(得分:2)

您要尝试的操作称为“反序列化”。反序列化是从JSON文本转换为对象(在本例中为Python-Object)的过程。最好使用库来完成序列化和反序列化。

反序列化Python工具:

JSON Pickle Library

您要做的是安装该库并将其导入到您的项目中。然后,您想通过使用类似于以下命令来对JSON文本进行反序列化:

obj = jsonpickle.decode(JSON text)

“ obj”现在是具有“已删除”,“ low_manual”,“取消”和“ items”属性的对象。我相信“项目”将包含一系列对象,您可以通过父对象“ obj”访问这些对象。

答案 1 :(得分:1)

已解决。

var = "metadata": {
        "deleted": "false",
        "low_manual": "false",
        "canceled": "false",
        "items": "[{'descricao': 'ITEM1', 'amount': '200'}, {'amount': '3000', 'descricao': 'ITEm2'}]"
    }

from ast import literal_eval

stringC = literal_eval(var['metadata']['items'])

stringC[0]