四时宝库

程序员的知识宝库

python:json 模块的使用

一、JSON解读:本质就是一个有规则的字符串

  • 用作轻量级数据交换格式(个人觉得,重量级的 xml 更合适些)
  • 所有语言都支持解析字符串

C# Json 中如何处理 Dictionary 中 Key 为自定义类型的问题

在使用 System.Text.Json 进行 JSON 序列化和反序列化操作时,我们会遇到一个问题:如何处理字典中的 Key 为自定义类型的问题。

背景说明

JSON 对象的这些操作和使用场景你知道多少?

JSON 对象对应前端的同学一定不陌生,使用地非常频繁和常见,在这里顺便总结一下对 JSON 对象的操作和使用场景。

1、添加 JSON 的属性

可通过 . 或 [] 的方式对 JSON 内容的增加。

const data = {};
// 第一种方式:
data.name = "kevin";
// 第二种方式:
data['age'] = 18;
console.log(data); // {name: "kevin", age: 18}

使用Python 获取多级字典(Json)格式所有Key、Value

在编程数据处理时,经常能碰到多级包含多类型的字典,例如下图:

客户要求取到所有根部key,value并写入DataFrame中,下面用我的方法来实现:

#新建存放key,value的数组
data = []
#重名计数变量
name_count=1
other_count=1
#取到字典
A=eval(response.text)
d=A["data"]
#循环遍历字典
for k, v in d.items():
    #print(k,v)
    if isinstance(v, dict):
        # 如果字典中的值是字典类型,继续判断是否数组
        for sub_k, sub_v in v.items():
            #print(type(sub_v))
            if isinstance(sub_v, list):
                #print(sub_v)
                #如果时数组则循环数组
                for sub_1_lst in sub_v:
                    #判断数组中的字典类型
                    if isinstance(sub_1_lst, dict):
                        #print(list(sub_v[0].keys()))
                        #继续循环遍历数组中的每个字典
                        for sub_1_k, sub_1_v in sub_1_lst.items():
                            #print(sub_1_k, sub_1_v)
                            #以下时重名判断,根据需要自定义
                            if sub_1_k=="name" :
                                data.append(( sub_1_k+str(name_count), sub_1_v))
                                name_count+=1
                                
                            elif sub_1_k=="riskPremSum":
                                data.append(( sub_1_k+str(other_count), sub_1_v))
                                other_count+=1
                            else:
                                data.append(( sub_1_k, sub_1_v))                  
    #如果不是字典则再次判断是否时数组                                          
    elif isinstance(v, list):
        # 如果字典中的值是列表类型
        for i, item in enumerate(v):
            print(i,item)
            #继续循环遍历数组中的每个字典
            if isinstance(item, dict):
                # 如果列表中的元素是字典类型,
                for sub_k, sub_v in item.items():
                    #以下时重名判断,根据需要自定义
                    if sub_k=="name" :
                        data.append((sub_k+str(name_count), sub_v))
                        name_count+=1
                    elif sub_k=="riskPremSum":
                        data.append((sub_k+str(other_count), sub_v))
                        other_count+=1
                    else:
                        data.append((sub_k, sub_v))
            else:
                data.append((k + '.' + str(i), item))
    #如果非字典非数组则直接写入   
    else:
        if k=="name" :
            data.append((k+str(name_count), v))
            name_count+=1
        elif k=="riskPremSum":
            data.append((k+str(other_count), v))
            other_count+=1
        else:
            data.append((k, v))
        

我是如何使用ChatGPT和CoPilot作为编码助手的

Hive 超赞的解析 Json 数组的函数

背景

大数据的 ETL(Extract-Transfer-Load) 过程的 Transfer 阶段,需要对 json 串数据进行转换“拍平”处理。

Hive解析Json数组超全讲解

前言

在Hive中,经常会遇到很少数据是JSON格式的,比如:APP页面埋点数据、用户登录日志、点击日志等信息,都会将多个字段存放在一个json数组中,因此,对数据分析时就要用到json相关函数来处理,下面我就介绍一下Hive中的几个json函数的用法。

Hive自带的json解析函数

学习springboot之前需要学习哪些概念?

作者| 慕课网精英讲师 张勤一

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!

学习 SpringBoot 需要做哪些准备?

Go的json解析:Marshal与Unmarshal


JSON(JavaScript 对象表示,JavaScript Object Notation)作为一种轻量级的数据交换格式,常用于前后端数据传输。

Go 语言通过 encoding/json 对外提供标准的 JSON 序列化和反序列化方法,即 encoding/json.Marshal 和 encoding/json.Unmarshal。

一篇长文带你在python里玩转Json数据

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: 朱小五/凹凸玩数据

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

Json简介

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接