将结构化数据转换为元组的python数组

将结构化数据转换为元组的python数组,python,python-3.x,data-conversion,Python,Python 3.x,Data Conversion,我有一个包含如下结构数据的输入文件: [ { "raw": "blah blah", "entities": [ { "offset": 100, "end": 145, "entityId": "CREDIT

我有一个包含如下结构数据的输入文件:

[
    {
        "raw": "blah blah",
        "entities": [
            {
                "offset": 100,
                "end": 145,
                "entityId": "CREDIT_CARD_NUMBER"
            }

        ]
    },
    {
        "raw": "blah blah",
        "entities": [
            {
                "offset": 200,
                "end": 300,
                "entityId": "CREDIT_CARD_NUMBER"
            }
        ]
    }
]
将其转换为这种格式(元组的python数组)最合适的方法是什么


如果您想使用相同的信息创建一个新数组,那么它就足够简单了

ele['raw']
提供了
blah-blah

[tuple(ele['entities'][0].values())]
以列表的形式提供
[(100145,'CREDIT\u CARD\u NUMBER')]

arr = [{"raw": "blah blah","entities": [{"offset": 100,"end": 145,"entityId": "CREDIT_CARD_NUMBER"}]},{"raw": "blah blah", "entities": [{"offset": 200,"end": 300,"entityId": "CREDIT_CARD_NUMBER"}]}]
ans = [(ele['raw'],{'entities':[tuple(ele['entities'][0].values())] }) for ele in k]
输出:


请从下一页重复和。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了取代现有的文档和教程。谢谢@venky_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这也不会处理包含0个元素的实体,或包含1个以上元素的实体element@Rory更新了我的答案,请立即尝试。谢谢@venky\uuuu,但这不会处理包含0个元素的实体,或者具有多个元素的实体您应该在原始问题中添加这些测试用例,并且您完全可以添加if语句来忽略0个元素用例。这是正确的答案:使用open('input/training_data.txt','r',encoding=“utf-8”)作为f:a=ast.literal_eval(f.read())training_data=[]对于a中的ele:raw=ele['raw']entities=[]对于ele['entities']中的e:entity=(e[“offset”]、e[“end”]、e[“entityId”])entities.append(entity)training_data.append((raw,{'entities':entities}))
arr = [{"raw": "blah blah","entities": [{"offset": 100,"end": 145,"entityId": "CREDIT_CARD_NUMBER"}]},{"raw": "blah blah", "entities": [{"offset": 200,"end": 300,"entityId": "CREDIT_CARD_NUMBER"}]}]
ans = [(ele['raw'],{'entities':[tuple(ele['entities'][0].values())] }) for ele in k]
[('blah blah', {'entities': [(100, 145, 'CREDIT_CARD_NUMBER')]}),
('blah blah', {'entities': [(200, 300, 'CREDIT_CARD_NUMBER')]})]