【问题标题】:Translate structured data to python array of tuples [closed]将结构化数据转换为 python 元组数组 [关闭]
【发布时间】:2020-12-08 17:23:51
【问题描述】:

我有这个输入文件,其中包含如下结构的数据:

[
    {
        "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数组)最合适的方法是什么?

[
    (
        "blah blah",
        {"entities": [(100, 145, "CREDIT_CARD_NUMBER")]},
    ),
    (
        "blah blah",
        {"entities": [(200, 300, "CREDIT_CARD_NUMBER")]},
    ),
]

【问题讨论】:

  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。 Stack Overflow 无意取代现有的文档和教程。

标签: python python-3.x data-conversion


【解决方案1】:

如果您想创建一个具有相同信息的新数组,这很简单。

ele['raw'] 提供blah blah

[tuple(ele['entities'][0].values())] 提供[(100, 145, 'CREDIT_CARD_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]

出来:

[('blah blah', {'entities': [(100, 145, 'CREDIT_CARD_NUMBER')]}),
('blah blah', {'entities': [(200, 300, 'CREDIT_CARD_NUMBER')]})]

【讨论】:

  • 谢谢@venky__,差不多了,但是实体应该是一个元组列表,而不仅仅是一个列表,例如[(200, 300, "CREDIT_CARD_NUMBER")] 而不是 [200, 300, 'CREDIT_CARD_NUMBER']。这也不处理具有 0 个元素的实体,或具有超过 1 个元素的实体
  • @Rory 更新了我的答案,立即尝试。
  • 感谢@venky__,但这不处理具有 0 个元素的实体,或具有超过 1 个元素的实体
  • 您应该在原始问题中添加这些测试用例,并且您绝对可以添加 if 语句来忽略 0 元素案例。
  • 这是正确答案:with open('input/training_data.txt', 'r', encoding="utf-8") as f: a = ast.literal_eval(f.read( )) training_data = [] for ele in a: raw = ele['raw'] 实体 = [] for e in ele['entities']: entity = (e["offset"], e["end"], e["entityId"])entities.append(entity) training_data.append((raw, {'entities':entities}))
猜你喜欢
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2018-12-31
  • 1970-01-01
相关资源
最近更新 更多