小编Mar*_*ark的帖子

在python中同时调用api

我需要和api交谈才能获得有关团队的信息.每个团队都有一个独特的身份.我用那个id叫api,然后我得到每个团队的队员名单(dicts列表).玩家的关键之一是我可以用来获取有关该玩家的更多信息的另一个ID.我可以捆绑所有这些player_id并打电话给api,以便在一次api通话中获得每个玩家的所有附加信息.

我的问题是:我希望团队数量增长,这可能会非常大.此外,每支球队的球员数量也可能增长.

将这些api调用同时发送到api的最佳方法是什么?我可以使用multiprocessing.dummy中的ThreadPool,我也看过genvent用于这样的事情.

对api的调用需要一些时间来获得返回值(每次批量api调用1-2秒).

现在,我做的是这样的:

for each team:
    get the list of players
    store the player_ids in a list
    get the player information for all the players (passing the list of player_ids)
assemble and process the information
Run Code Online (Sandbox Code Playgroud)

如果我使用ThreadPool,我可以执行以下操作:

create a ThreadPool of size x
result = pool.map(function_to_get_team_info, list of teams)
pool.close()
pool.join()
#process results

def function_to_get_team_info(team_id):
    players = api.call(team_id)
    player_info = get_players_information(players)
    return player_info

def get_players_information(players):
    player_ids = []
    for player in players:
        player_ids.append(player['id'])
    return get_all_player_stats(player_ids)

def get_all_player_stats(players_id):
    return api.call(players_id) …
Run Code Online (Sandbox Code Playgroud)

python api concurrency threadpool gevent

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

使用Boto在带有LSI的dynamoDB中创建表

我知道如何使用boto创建表,但是在创建还包含LSI的表时找不到任何在线帮助。我搜索了boto文档和AWS文档。如果您有一个有关如何创建这样一个表的简单示例,那么我可以从那里开始。

谢谢

python boto amazon-dynamodb

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

Ruby,rspec 测试方法时出现预期错误

我有一个方法,看起来build_object(arg1, arg2, arg3, arg4, arg5)我想在为 arg5 传递某个值时测试此方法。

我正在尝试类似的东西

expect(my_method(p1, p2, p3, p4, bad5)).to raise_error(ArgumentError)

我收到以下错误:

ArgumentError:
   The expect syntax does not support operator matchers, so you must pass a matcher to `#to`.
Run Code Online (Sandbox Code Playgroud)

我对 Ruby 和 rspec 测试非常陌生,因此感谢您提供任何帮助。请解释您的答案在做什么,以便我学习。

ruby rspec

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

使用 Picocli,如何需要位置参数,然后根据位置参数的值需要可选参数

我遇到一种情况,我需要三个强制参数(field1field2和 )field3。然后我希望用户输入 a command name(强制,值可以是createlist等)。命令名称必须输入,并且必须是单数(只能是其中之一)可以输入它们)。

有些命令会有参数,有些则没有。我该如何处理?

我尝试了以下操作,但出现错误:

ArgGroup has no options or positional parameters, and no subgroups
Run Code Online (Sandbox Code Playgroud)
public class CliParserArgs {
    @Option(names = {"--field1"}, required = true)
    private String field1;

    @Option(names = {"--field2"}, required = true)
    String field2;

    @Option(names={"--field3"}, required = true)
    String field3;

    @Option(names = {"-h", "--help"}, usageHelp = true) boolean help;

    class Create {
        private final String val;
        public Create(final String val) {
            this.val = val;
        } …
Run Code Online (Sandbox Code Playgroud)

java command-line-arguments picocli

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

将一组字符串流式传输到 <String, ArrayList()> 的 Map 中

我有一组字符串(它是静态的),我想Map<String, List<String>>从它们创建一个,其中列表被初始化为一个新的 ArrayList。类似于以下内容,但此代码不正确。

static Set<String> MY_TYPES = Set.of("type1", "type2", "type3");

Map<String, List<String> myMap = MY_TYPES.stream().map(t->() t, new ArrayList<>()).collect(Collectors.toMap());
Run Code Online (Sandbox Code Playgroud)

我正在尝试学习如何在我的代码中更好地使用流。我知道我可以在集合上进行迭代。

编辑

@shmosel,你是对的。我想要相当于

Map.of("type1", new ArrayList<>(), "type2", new ArrayList<>(), "type3", new ArrayList());
Run Code Online (Sandbox Code Playgroud)

java set java-stream

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

pyparsing字符串的引用名称

我有一个字符串,可以包含这样的东西:

s = "'Mark, Bob','John'"
Run Code Online (Sandbox Code Playgroud)

解析为3个字符串的最佳方法是什么?我对pyparsing很新,我担心我不太了解它

(编辑)对不起,我不是很清楚.这是使用语法和pyparsing来解析文件的程序的一部分.这是输入的一小部分,我不知道该怎么做.这应该真正代表一个由三个名字组成的数组,这就是我想要从中得到的.

谢谢

python string pyparsing

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

确定是否在使用Perl的测试中调用函数

我用 Test::More

我想知道我的一个函数是否被调用.我有两种情况:一种不会调用我的函数,另一种情况不会.这个功能没有被嘲笑,我只是想知道它是否被调用.

testing perl function

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

将属性添加到类或调用函数3次更好吗?

我在perl工作.我的主要模块中有许多属性(大约30个).我需要调用一个O(n)函数,其中n当前为9,我认为它在未来5年内不会超过20.

我的问题是:我需要调用此函数(determine_values)3次,或者我可以在new中调用它一次并隐藏对象中返回的值,并使用该对象3次.

我不确定是否更好地权衡时间复杂度(O(n))(但调用三次),或者使用额外的内存(该函数将数组引用返回到最多n个项目的数组)

perl class time-complexity

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

S3 默认生命周期到期

S3 是否有默认的过期生命周期?IOW,密钥会在 x 天后自动过期吗?或者它永远存在?

谢谢

amazon-s3 boto

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

在C中调用宏,结果如何?

我继承了一些C代码,我在宏上有点生疏.我们使用libdnet来创建数据包.我有代码执行此操作:

ip_pack_hdr(
    /* hdr = */  &(pkt->ip),
    /* tos = */  0,                 // Fixed
    /* len = */  ICMP4_ECHO_PKT_LEN_NO_ETH + data_len, // Fixed
    /* id = */   0,                 // Dynamic (self)
    /* off = */  IP_DF,             // Fixed
    /* ttl = */  0,                 // Dynamic (caller)
    /* p = */    IP_PROTO_ICMP,     // Fixed
    /* src = */  src.addr_ip,       // Fixed
    /* dst = */  dst.addr_ip        // Fixed
);
Run Code Online (Sandbox Code Playgroud)

libdnet中ip_pack_hdr的定义是

#define ip_pack_hdr(hdr, tos, len, id, off, ttl, p, src, …
Run Code Online (Sandbox Code Playgroud)

c macros

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

在 DynamoDB 中搜索数据或使用搜索服务

我想知道尝试搜索数据的利弊(基本上是对一组有限的字段进行全文搜索)。

我的数据目前在 DynamoDB 中,我意识到这不太适合全文搜索。有没有办法在 DynamoDB 中进行全文搜索?这样做有什么好处和坏处?

我还可以使用搜索集群(如 ElasticSearch)。您不使用搜索集群的任何原因?

还有其他方法可以进行全文搜索吗?其他解决方案?

solr elasticsearch amazon-dynamodb

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