使用 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 typeOrderedDict
?我的没有,所以我假设你在做一些不同的事情。你到底在做什么合并,你能检查两个操作数的类型吗?
我只是分配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 数组数据