小编amo*_*gel的帖子

使用Circe for Scala编码为json时忽略无字段

我使用scala 2.11.8与circe 0.7.0

我使用scalajs与API区分null发送的JSON中不存在的字段和字段.

我正在寻找一种编码为JSON的方法,case class包含Option[T]我将设置None为表示缺失值的字段的scala :

case class Foo(
optionalFieldOne: Option[Int] = 42,
optionalFieldTwo: Option[Int] = null,
optionalFieldThree: Option[Int] = None
)

implicit FooEncoder: Encoder[Foo] = deriveEncoder[Foo]
val test = Foo()
//What the code actually produces
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null, "optionalFieldThree":null}

//What I would like
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null}
Run Code Online (Sandbox Code Playgroud)

circe是否提供了任何可能的配置?你知道如何访问它,我已经查看了所有发行说明,github问题和他们的网站文档没有成功.

在这种配置选项不可用的情况下,有人会如何正确实现它?

json scala circe

5
推荐指数
1
解决办法
2408
查看次数

为 Pandas Dataframe 添加行,同时保留类型

我有一个 pandas 数据框,我想向其中增量追加行。我的问题是,当尝试发生值时,它们的类型会丢失。这对于'boolean'变得尤其烦人'object'int成为float仍然是一件坏事,但至少程序的其余部分仍然可以运行,只是效率较低):

data1 = pd.DataFrame()
data1['foo'] = 5
print("*\n",data1.dtypes)
data2 =pd.DataFrame()
data2['bar'] = True
print("**\n",data2.dtypes)
data3 = pd.concat([data1, data2])
print("***\n",data3.dtypes)
data4 = data1.append(data2)
print("****\n",data4.dtypes)

*
 foo    int64
dtype: object
**
 bar    bool
dtype: object
***
 bar     object
foo    float64
dtype: object
****
 bar     object   # <-- bool type becomes object
foo    float64
dtype: object
Run Code Online (Sandbox Code Playgroud)

您知道如何预防吗?

python types boolean pandas

2
推荐指数
1
解决办法
2941
查看次数

标签 统计

boolean ×1

circe ×1

json ×1

pandas ×1

python ×1

scala ×1

types ×1