i need to format the contents of a Json file in a certain format in a pandas DataFrame so that i can run pandassql to transform the data and run it through a scoring model.

file=C:\scoring\u model\json.js("文件"的内容如下)

{
"response":{
  "version":"1.1",
  "token":"dsfgf",
   "body":{
     "customer":{
         "customer_id":"1234567",
         "verified":"true"
       },
     "contact":{
         "email":"mr@abc.com",
         "mobile_number":"0123456789"
      },
     "personal":{
         "gender": "m",
         "title":"Dr.",
         "last_name":"Muster",
         "first_name":"Max",
         "family_status":"single",
         "dob":"1985-12-23",
     }
   }
 }

我需要数据框看起来像这样(显然,同一行上的所有值,都试图为这个问题设置尽可能好的格式):

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

我研究了关于这个主题的所有其他问题,try 了各种方法将Json文件加载到Pandas 中

`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()Python Pandas: How to split a sorted dictionary in a column of a dataframe

[yo=f.readlines()]中的dataframe results考虑try 根据("")拆分每个单元格的内容,并找到一种方法将拆分的内容放入不同的列中,但目前为止运气不佳.非常感谢您的专业知识.提前谢谢你.

推荐答案

如果将整个json作为dict(或列表)加载,例如使用json.load,则可以使用json_normalize:

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

Json相关问答推荐

Jolt转换问题—使用键查找匹配对象

Golang返回的JSON顶级字段是可变的.如何在 struct 中使用

jq:将一个数组与多个数组连接起来

具有 (RegEx) 模式的 json-schema 中的枚举

jq EOF 处的无效数字文字将 json 值更新为 0.0.x

jq - 将父键值提取为子元素旁边的逗号分隔值

在 JOLT 中重新排列值

在PowerShell中按时间戳过滤JSON

Swift - 将图像从 URL 写入本地文件

Jackson 的@JsonView、@JsonFilter 和 Spring

JSON RPC - 什么是id?

有什么方法可以在 elasticsearch 服务器中导入 json 文件(包含 100 个文档).?

如何访问 JSON 对象数组的第一个元素?

如何判断 JSON 响应元素是否为数组?

如何在 Python 中合并两个 json 字符串?

你如何在 Arrays of Arrays 上 OPENJSON

JSON 格式的 Amazon S3 响应?

通过 JSON 发送 64 位值的公认方式是什么?

在 iPhone 上解析 JSON 日期

在rails中将JSON字符串转换为JSON数组?