小编Aza*_*ara的帖子

Azure 表存储 - 用于扩展 ITableEntity 的任何类型的通用下载

我有四种自定义数据类型,每一种都 extends ITableEntity,这是WindowsAzure.Storage包的一部分。

现在,我有四种不同的方法可以从 Azure 表存储下载数据。每个都遵循以下格式:

public List<MyCustomEntity> DownloadMyCustomEntities(string tableId)
{
    // Reference the CloudTable object
    CloudTable table = tableClient.GetTableReference(tableId);

    TableQuery<MyCustomEntity> query = new TableQuery<MyCustomEntity>();
    return new List<MyCustomEntity>(table.ExecuteQuery(query));
}
Run Code Online (Sandbox Code Playgroud)

我没有为每个自定义实体类型使用这些方法之一,而是尝试创建一个共享函数。我希望这是可能的,因为我所有的自定义类型都继承自ITableEntity.

这是我尝试过的:

public List<TableEntity> DownloadAnyEntity(string tableId)
{
    // Reference the CloudTable object
    CloudTable table = tableClient.GetTableReference(tableId);

    TableQuery<TableEntity> query = new TableQuery<TableEntity>();
    return new List<TableEntity>(table.ExecuteQuery(query));
}
Run Code Online (Sandbox Code Playgroud)

我已经用TableEntityand试过了ITableEntity,但我不断收到错误。对于TableEntity,我的错误是我实际需要的类型不存在强制转换(当我调用该DownloadAnyEntity方法时),而我觉得它应该是隐式的,因为它是ITableEntity.

对于ITableEntity,我收到一个错误,即ExecuteQuery输入必须是具有公共无参数构造函数的非抽象类型。我所有的四种自定义类型都有公共无参数构造函数。

我觉得我看到的问题更多地与没有完全理解继承有关,更多的是它是特定于 Azure 表存储的。任何指针都非常感谢。

我一直在关注这个文档 …

c# azure azure-storage azure-table-storage

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

YAML - 转储没有类型/标签的嵌套对象

我正在尝试将一些 Python 对象转储到 YAML 中。

目前,无论 YAML 库(pyyamloyaml、 或ruamel)如何,我都遇到了一个问题,调用.dump(MyObject)给了我正确的 YAML,但似乎添加了很多关于我不想要的 Python 对象的元数据,形式如下:

!!python/object:MyObject 和其他类似的字符串。

我不需要能够从 YAML 重建对象,所以我可以完全删除这个元数据

上的其他问题表明,这个共同的解决方案是使用safe_dump替代dump

但是,safe_dump似乎不适用于嵌套对象(或根本对象),因为它会引发此错误:

yaml.representer.RepresenterError: ('cannot represent an object', MyObject)
Run Code Online (Sandbox Code Playgroud)

我看到这里的常见解决方法是为我尝试转储的对象手动指定 Representers。我的问题是我的对象是我无法控制的生成代码。我还将倾倒各种不同的物体。

底线:有没有办法使用 转储嵌套对象.dump,但没有添加元数据?

python yaml pyyaml ruamel.yaml

4
推荐指数
1
解决办法
2285
查看次数

合并哈希数组加法

我有一系列哈希

hash = [{"user"=>"10910", "count"=>"2"},
{"user"=>"10910", "count"=>"8"}, 
{"user"=>"10910", "count"=>"4"}, 
{"user"=>"11245", "count"=>"3"}, 
{"user"=>"10910", "count"=>"2"}, 
{"user"=>"10910", "count"=>"7"}, 
{"user"=>"11245", "count"=>"2"}, 
{"user"=>"10910", "count"=>"1"}, 
{"user"=>"13869", "count"=>"2"}]
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法将其合并到一个新的哈希数组中,每个用户只出现一次,其计数是以前与用户关联的所有计数的总和.

以上应该导致以下哈希:

newhash = [{"user"=>"10910", "count"=>"24"},
{"user"=>"11245", "count"=>"5"}, 
{"user"=>"13869", "count"=>"2"}]
Run Code Online (Sandbox Code Playgroud)

我尝试了一个很长的复杂方法,它只是循环遍历它以组合哈希,但我不能使它工作.必须有一种更好,更简单的方法.

ruby

0
推荐指数
1
解决办法
78
查看次数