当前位置: 首页 > 知识库问答 >
问题:

什么是JSON可序列化的?[关闭]

巢靖
2023-03-14
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("range").getOrCreate()
from pyspark.sql.types import StructType,StringType,LongType,StructField

myOwnSchema = StructType([StructField("DEST_COUNTRY_NAME",StringType(),True),StructField("ORIGIN_COUNTRY_NAME",StringType(),True),StructField("count",LongType(),False,metadata={"hello:world"})])

df = spark.read.format("JSON").schema(myOwnSchema).load(r"C:\work\datasets\2015-summary.json")

print(df.printSchema())

获取以下错误

TypeError:set类型的对象不可JSON序列化

共有1个答案

公西浩
2023-03-14

如果一个对象是“JSON Serializable”,这意味着JSON模块知道如何将该值转换为JSON值(反之亦然)。

整数是可JSON序列化的:

>>> json.dumps(1)
'1'

列表是可JSON序列化的:

>>> json.dumps([1,2,3])
'[1, 2, 3]'

Dict是可JSON序列化的(尽管只有在键可以首先转换为字符串的情况下):

>>> json.dumps({1:2})
'{"1": 2}'

但是,一个集合不是:

>>> json.dumps({1,2,3})
Traceback (most recent call last):
  [...]
TypeError: Object of type set is not JSON serializable

MyOwnSchema引用的元数据是包含单个字符串的集合;您可能打算存储dict

 类似资料:
  • 问题内容: 中的类对什么意味着什么?或者总的来说… 问题答案: 序列化将一个对象从内存持久存储到一系列位中,例如保存到磁盘上。反序列化是相反的-从磁盘读取数据以水合/创建对象。 就您的问题而言,它是一个接口,如果在一个类中实现,则该类可以由不同的序列化程序自动进行序列化和反序列化。

  • 如果接口只是一个标记接口,用于在 java 中传递有关类的某种元数据 - 我有点困惑: 在阅读了java的序列化算法(元数据从下到上,然后从上到下的实际实例数据)的过程之后,我无法真正理解哪些数据不能通过该算法进行处理。 简而言之: 哪些数据可能导致? 我怎么知道我不应该为我的类添加子句?

  • 我开始学习面向对象编程(OOP),想知道:在OOP术语中,序列化的含义是什么?

  • 本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。    

  • 问题内容: 如下代码: 引发以下异常: 我猜内部类具有一个允许对其私有访问的字段和方法的字段。声明内部类static 可以解决它,但是如果需要此访问权限怎么办?有没有一种方法可以在不包含封闭类的情况下序列化非静态内部类,例如通过引用外部类? 编辑:例如,仅在序列化之前才需要访问外部类。好的,编译器不知道这一点,但是我认为这就是关键字存在的原因。 问题答案: 如果InnerClass需要此访问权限怎

  • 本文向大家介绍Java中的序列化是什么?,包括了Java中的序列化是什么?的使用技巧和注意事项,需要的朋友参考一下 Java提供了一种称为对象序列化的机制,该机制可以将对象表示为字节序列,其中包括对象的数据以及有关对象的类型和存储在对象中的数据类型的信息。 示例