小编QA *_*ive的帖子

如何确保按照通常(但不正确)的预期在 Python 类上调用 __del__ 函数?

我知道__del__Python 类的函数并没有像许多人期望的那样被处理:作为析构函数。

我还了解到,有更多“Pythonic”并且可以说是更优雅的整理方法,特别是使用with 构造

然而,当编写可能被不太熟悉 python 方式的读者使用的代码时,当清理很重要时,是否有一种优雅的方法可以让我简单地__del__可靠地作为析构函数工作,而不干扰 python 的自然使用__del__

作为析构函数的期望__del__似乎并非不合理,同时也很常见。所以我只是想知道是否有一种优雅的方式让它按照预期工作——忽略关于它的 Python 优点的许多争论。

python python-2.7 python-3.x

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

与SelectToken一起使用时,为什么AddAfterSelf返回“ JProperty不能有多个值”?

我想使用字符串路径将新的JProperty添加到JSON对象。我正在检索现有路径,然后在其附近添加一个新值。似乎无论我如何选择令牌,或者无论我调用哪种Add方法(最相关的是AddAfterSelf)或作为新值提供的东西,我都会收到异常:

运行时异常(第9行):Newtonsoft.Json.Linq.JProperty不能具有多个值。

您可以在这里看到失败:https : //dotnetfiddle.net/mnvmOI

在这种情况下为什么不能添加JProperty?

using System;
using Newtonsoft.Json.Linq;

public class Program
{
    public static void Main()
    {
        JObject test = JObject.Parse("{\"test\":123,\"deeper\":{\"another\":\"value\"}}");
        test.SelectToken("deeper.another").AddAfterSelf(new JProperty("new name","new value"));
    }
}
Run Code Online (Sandbox Code Playgroud)

c# json.net

3
推荐指数
1
解决办法
1984
查看次数

如何将列聚合到 JSON 数组中?

如何转换如下数据以将数据存储在 ElasticSearch 中?

这是一个 bean 的数据集,我将按产品将其聚合到 JSON 数组中。

List<Bean> data = new ArrayList<Bean>();
data.add(new Bean("book","John",59));
data.add(new Bean("book","Björn",61));
data.add(new Bean("tv","Roger",36));
Dataset ds = spark.createDataFrame(data, Bean.class);

ds.show(false);

+------+-------+---------+
|amount|product|purchaser|
+------+-------+---------+
|59    |book   |John     |
|61    |book   |Björn    |
|36    |tv     |Roger    |
+------+-------+---------+


ds = ds.groupBy(col("product")).agg(collect_list(map(ds.col("purchaser"),ds.col("amount")).as("map")));
ds.show(false);

+-------+---------------------------------------------+
|product|collect_list(map(purchaser, amount) AS `map`)|
+-------+---------------------------------------------+
|tv     |[[Roger -> 36]]                              |
|book   |[[John -> 59], [Björn -> 61]]                |
+-------+---------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

这就是我想将其转换为:

+-------+------------------------------------------------------------------+
|product|json                                                              |
+-------+------------------------------------------------------------------+
|tv     |[{purchaser: "Roger", amount:36}]                                 |
|book   |[{purchaser: "John", amount:36}, {purchaser: …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql

3
推荐指数
1
解决办法
1315
查看次数