我有四种自定义数据类型,每一种都 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 表存储的。任何指针都非常感谢。
我一直在关注这个文档 …
我正在尝试将一些 Python 对象转储到 YAML 中。
目前,无论 YAML 库(pyyaml、oyaml、 或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,但没有添加元数据?
我有一系列哈希
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)
我尝试了一个很长的复杂方法,它只是循环遍历它以组合哈希,但我不能使它工作.必须有一种更好,更简单的方法.