首页 > 解决方案 > 如何使用apply函数和lambda循环遍历python中的json对象?

问题描述

我有这个 json 对象 name_lookup,如下所示:

[
  {
    "ID": "70B52DA6-F099-4D01-BBD0-03EA97292C26",
    "Name": "Join"
  },
  {
    "ID": "442B1598-20CF-4425-8A28-0438FBF77C46",
    "Name": "Bob"
  }
]

我的数据框(df)具有结构:

Id   Name
     Join
     Bob

如何遍历上面的 Json 对象并比较名称以在 df 中填写 id?

我使用这个函数来加载 json 文件:

def read_configs(file_name):
    with open(file_name, "r", encoding='utf-8') as read_file:
        lookup = json.load(read_file)
    return lookup

请帮我。非常感谢您的帮助<3

标签: pythonpandaslambdaapply

解决方案


假设名称是唯一的,则可以使用mapPandas 的功能:

import pandas as pd

lookup = [
    {
        "ID": "70B52DA6-F099-4D01-BBD0-03EA97292C26",
        "Name": "Join"
    },
    {
        "ID": "442B1598-20CF-4425-8A28-0438FBF77C46",
        "Name": "Bob"
    }
]

df = pd.DataFrame([[None, "Join"], [None, "Bob"]], columns=["ID", "Name"])

# Convert the list of entities to a dictionary and map names by it
df["ID"] = df["Name"].map({entity["Name"]: entity["ID"] for entity in lookup})

推荐阅读