繁体   English   中英

使用 python 从嵌套字典的值中提取特定文本

[英]Extracting Specific Text From value from a nested dictionaries with python

我有以下数据结构,我需要用state 密钥[ft,mi,FT,MI]提取单词并存储在一个名为distance的新密钥中。

我的数据的可重现示例

[
    {
        "id": 1243,
        "class1": [
            {"count":5,
                "state": "Arizona 4.47ft"
            },
            {
                "state": "Georgia 1023mi"
            }
        ]
    },
    {
        "id": 12438,
        "class1": [
            {"count":2,
                "state": "Newyork 2022 NY 74.6 FT"
            },
            {
                "state": "Indiana 747MI(In)"
            },
            {"count":2,
                "state": "Florida 453mi FL"
            }
        ]
    }
]

预期 output 的迷你 exp:

[
    {
        "id": 1243,
        "class1": [
            {"count":5,
                "state": "Arizona 4.47ft",
                "distance":"4.47ft"
            },
            {
                "state": "Georgia 1023 mi",
                "distance":"1023 mi"
            }
        ]
    }]

我建立的逻辑:

   for a in df['state']:
    for k in a:
        if "state" in k:
            m = ["ft","mi","FT","MI"]
            df['distance']=df['state'].str.extract(r'(\S+\s?(?:%s))\b' % '|'.join(m))

感谢您的宝贵时间,祝您有美好的一天!

请查看创建“距离”并从正则表达式模式“(.*)”获取值的代码。

import re

pattern = " (.*)"

for a in data:
    for k in a:
        #print(k)
        if "class" in k:
            #print(a[k])
            for l in a[k]:
                #print(l)
                m = re.findall(pattern, l['state'])
                l['distance'] = m[0]
                #print(l)
    print(a)
   

output:

在此处输入图像描述

如果它没有提供正确的数据,您可以编辑正则表达式模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM