如何将json格式转换为dataframe格式

介绍

欢迎关注我的公众号若木的解忧杂货铺

json格式

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集,但同时独立于任何编程语言。JSON格式易于人类阅读和编写,同时也易于机器解析和生成,这使得它成为理想的数据交换语言。

JSON的基本格式

JSON格式主要包括数值、字符串、数组、对象、对象数组和数组对象这几种类型。以下是它们的基本格式和示例:

  • JSON数值:数值格式是键值对的形式,其中值可以是数字。 { "key1": 100, "key2": 20 }

  • JSON字符串:字符串格式同样是键值对的形式,但这里的值是字符串。 { "key1": "张三", "key2": "大忽悠" }

  • JSON数组:数组格式的值是一个中括号包裹的列表,列表中可以包含数值或字符串。 { "key": [0, 111111], "key1": [18874, 15157] }

  • JSON对象:对象格式的值是一个由大括号包裹的JSON对象。 { "key": {"1": "亚索"}, "key1": {"2": "刘备"} }

  • JSON对象数组:对象数组格式的值是一个数组,数组中的每个元素都是一个JSON对象。 { "我": [ {"key": "好好学习"}, {"key1": "天天向上"} ] }

  • JSON数组对象:数组对象格式的值是一个对象,对象的值是一个数组。 { "我": { "你": [18874, 15157] } }

  • JSON的高级应用

    JSON不仅可以表示简单的数据结构,还可以表示更复杂的数据关系和层次结构。例如,一个JSON对象可以包含多个嵌套的对象和数组,这些对象和数组又可以包含更多的对象和数组,形成一个复杂的数据树。这种灵活性使得JSON可以轻松地表示复杂的数据模型和实体关系。

    此外,JSON还支持多种编程语言,许多现代编程语言都提供了解析和生成JSON数据的库和工具。这意味着开发者可以在不同的语言和平台之间轻松地交换和处理JSON数据。

  • dataframe

  • DataFrame 是 Pandas 中的一个核心数据结构,主要用于处理二维表格型数据。它类似于 Excel 电子表格或 SQL 表,具有行和列的概念。每个 DataFrame 可以包含不同类型的列,如整数、浮点数、字符串等。此外,DataFrame 提供了丰富的功能来进行数据访问、筛选、分割、合并、重塑、聚合以及转换等操作。
  • DataFrame 可以通过多种方式创建,例如使用列表、字典、二维数组、NumPy 的 ndarray、另一个 DataFrame 或者直接从文件(如 CSV、Excel)读取数据。
  • 转换实例

  • import json
    import pandas as pd 
    import os 
    import numpy as np
    import matplotlib.pyplot as plt
    import requests
    import pygwalker as pyg
    plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    
    os.chdir(r'file_path')
    ####根据字段用户自己添加
    data = {
        "time": [],
        "citycode": [],
        "cityletter":[],
        "cityname": [],
        "index": [],
        "last_index": [],
        "index_level": [],
        "speed": [],
        "city_coords": [],
        "city_center": [],
        "provincecode": [],
        "provincename": [],
        "weekRate": []
    }
    ###同上
    with open(r'filename.txt', 'r', encoding= 'utf-8') as f:
        response = json.load(f)['data']['list']   
        for res in response:
            data['time'].append(res['time'])
            data['citycode'].append(res['citycode'])
            data['cityletter'].append(res['cityletter'])
            data['cityname'].append(res['cityname'])
            data['index'].append(res['index'])
            data['last_index'].append(res['last_index'])
            data['index_level'].append(res['index_level'])
            data['speed'].append(res['speed'])
            data['city_coords'].append(res['city_coords'])
            data['city_center'].append(res['city_center'])
            data['provincecode'].append(res['provincecode'])
            data['provincename'].append(res['provincename'])
            data['weekRate'].append(res['weekRate'])
            
    data = pd.DataFrame(data)
    
    #print(data.sample( 30))
    

    此片内容至此结束,如您想要关注更多内容,欢迎您关注公众号----若木的解忧杂货铺

你可能感兴趣的:(json)