Python 将Json嵌套到具有特定格式的数据帧
我需要将Json文件的内容格式化为pandas数据框架中的特定格式,以便运行pandassql转换数据并通过评分模型运行它 file=C:\scoring\u model\json.js(文件内容如下) 我需要数据框如下所示(显然,同一行上的所有值都是相同的,我试图为这个问题设置尽可能好的格式): 我已经研究了关于这个主题的所有其他问题,并尝试了各种方法将Json文件加载到pandas中Python 将Json嵌套到具有特定格式的数据帧,python,json,pandas,nested,format,Python,Json,Pandas,Nested,Format,我需要将Json文件的内容格式化为pandas数据框架中的特定格式,以便运行pandassql转换数据并通过评分模型运行它 file=C:\scoring\u model\json.js(文件内容如下) 我需要数据框如下所示(显然,同一行上的所有值都是相同的,我试图为这个问题设置尽可能好的格式): 我已经研究了关于这个主题的所有其他问题,并尝试了各种方法将Json文件加载到pandas中 `with open(r'C:\scoring_model\json.js', 'r') as f:`
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = pd.read_json(f.read())
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = f.readlines()
在此解决方案中尝试了pd.Panel()
对于[yo=f.readlines()]的dataframe结果,考虑尝试基于(“”)拆分每个单元格的内容,并找到一种方法将拆分的内容放入不同的列中,但到目前为止运气不佳。非常感谢您的专业知识。提前感谢。如果您将整个json作为dict(或列表)加载,例如使用
json.load
,您可以使用:
明亮的非常感谢,json数据将作为数据类型“object”加载。为了使用pandasql查询转换数据,列中的数据需要采用各种数据类型(即“int”、“str”、“timestamp”等),最好的方法是什么?你推荐这里的方法吗?根据我上面的评论,最后使用cast(变量x为整数)来转换pandasqlFor pandas 1.0.0:pd.json_normalize(d)中的数据。我们是否可以将标记名附加到列中以保持跟踪。例如:联系电子邮件、联系手机等等。对于大型json,这将非常方便。
version | token | customer_id | verified | email | mobile_number | gender |
1.1 | dsfgf | 1234567 | true | mr@abc.com | 0123456789 | m |
title | last_name | first_name |family_status | dob
Dr. | Muster | Max | single | 23.12.1985
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = pd.read_json(f.read())
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = f.readlines()
In [11]: d = {"response": {"body": {"contact": {"email": "mr@abc.com", "mobile_number": "0123456789"}, "personal": {"last_name": "Muster", "gender": "m", "first_name": "Max", "dob": "1985-12-23", "family_status": "single", "title": "Dr."}, "customer": {"verified": "true", "customer_id": "1234567"}}, "token": "dsfgf", "version": "1.1"}}
In [12]: df = pd.json_normalize(d)
In [13]: df.columns = df.columns.map(lambda x: x.split(".")[-1])
In [14]: df
Out[14]:
email mobile_number customer_id verified dob family_status first_name gender last_name title token version
0 mr@abc.com 0123456789 1234567 true 1985-12-23 single Max m Muster Dr. dsfgf 1.1