使用 python pandas 读取 json 文件并更新现有的 excel

Posted

技术标签:

【中文标题】使用 python pandas 读取 json 文件并更新现有的 excel【英文标题】:Read json file and update existing excel using python pandas 【发布时间】:2018-09-26 20:16:43 【问题描述】:

excel_file name = exl.xlsx

Excel 数据:

name  surname   email  
a     sname     abc.com  
b     sname2    efg.com  

json文件名=input.json

json 数据


 "a":
    
     "friend1":4444444444,
     "friend2":5555555555,
     "friend3":1111111111
    ,
 "b":
    
     "friend3":6565656565,
     "friend2":9999999999,
     "friend5":9999988888
    
  


import json  
import panda as pd  

json_data = json.load(open(input.json))  
data = pd.read_json(json_data)  

excel_file = pd.read_excel(exl.xlsx, na_filter=False, header=0)  

我想更新 excel 文件,使您将 json 中的名称与 excel 匹配,并在 excel 中添加一个名为“listOfFriends”的新列,并为匹配的名称更新列

name  surname   email    listOfFriends  
a     sname     abc.com  friend1, friend2, friend3  
b     sname2    efg.com  friend3, friend2, friend5  

【问题讨论】:

【参考方案1】:

假设你开始

j = """

 "a":
    
     "friend1":4444444444,
     "friend2":5555555555,
     "friend3":1111111111
    ,
 "b":
    
     "friend3":6565656565,
     "friend2":9999999999,
     "friend5":9999988888
    

"""

然后

pd.Series(k: list(v) for k, v in json.loads(j).items()).to_frame().rename(columns=0: 'listOfFriends')

给了

    listOfFriends
a   [friend1, friend2, friend3]
b   [friend3, friend2, friend5]

如果你把它分配给friends,你只需要

pd.merge(excel_file, friends, left_on='name', right_index=True)

并将结果写回 Excel 文件。

【讨论】:

当我将它分配给朋友并执行 pd.merge ValueError: can not merge DataFrame with instance of type 时会引发此错误 您是否在代码中的任何地方使用了OrderedDict?我的没有,所以我假设你在做一些不同的事情。你到底在做什么合并,你能检查两个操作数的类型吗? 我只是分配friends = pd.Series(k: list(v) for k, v in json.loads(j).items()).to_frame().rename(columns =0: 'listOfFriends') 然后使用 pd.merge 和我从文件中读取的 json 数据,例如: json_data = json.load(open(input.json)) data = pd.read_json(json_data) j =data.to_json()

以上是关于使用 python pandas 读取 json 文件并更新现有的 excel的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Python pandas 读取 json 数组数据

Pandas只提供了读取啥文件的函数?

使用 Python/Pandas 库无法解析来自 JSON 响应的数据

Python 从所有子目录中读取 JSON 文件

如何使用 pandas 读取 json 字典类型的文件?

Python 如何把json数据写入excel