Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多维数组中使用数组元素作为索引的Python_Python_Arrays - Fatal编程技术网

在多维数组中使用数组元素作为索引的Python

在多维数组中使用数组元素作为索引的Python,python,arrays,Python,Arrays,我正在解析来自SOAP查询wsdl的结果,并在如下数组中获取结果: [(item){ item[] = (item){ key[] = "cdr_id", value[] = "201407000000000431", }, (item){ key[] = "cdr_date", value[] =

我正在解析来自SOAP查询wsdl的结果,并在如下数组中获取结果:

[(item){
   item[] =
      (item){
         key[] =
            "cdr_id",
         value[] =
            "201407000000000431",
      },
      (item){
         key[] =
            "cdr_date",
         value[] =
            "2014-07-07 07:47:12",
      },
... (snipped for brevity - 81 items in total)
      (item){
         key[] =
            "extradata",
         value[] = <empty>
      },
 }]
您可以为所有这些值创建字典,以使用特定键访问特定值。字典是哈希表的python实现。请注意,这只有在您希望多次访问字典时才有意义,因为您需要在创建哈希表期间遍历数组,并为每个条目计算哈希值。如果您只想提取一个值,最好的解决方案是像您在代码示例中所做的那样遍历数组。在最坏的情况下,你有一个复杂的问题


您可以使用int12345在python中将字符串轻松解析为整数。但是要小心。如果字符串不能解析为整数,则会引发ValueError异常。如果您的已用时间是一个实数,而不是一个自然数,则可以使用float22.2123进行解析。成功的结果是调用14个数组,每个数组包含81项。我迭代14x81项,而不是使用同一个字典,除非我不理解字典是如何工作的。在任何情况下——就python而言,我是一个NOOB——我试图dictsuccess\u calls和dictsuccess\u calls.item,但不知道如何分配键、值数组。至于最后一个问题-至少在打印项_值查看时,答案在方括号[]中-它是一个整数,但由于我尝试对其进行整型时使用方括号,因此我没有得到任何值。81是硬连线的-它始终是相同的项,不同的值。成功呼叫的数量是可变的,在繁忙的服务器上可以达到数千次。好的,如果您的答案在方括号中,您只需选择第一个字段进行整型。。。因此:初始项_值[0]。似乎值是另一个数组。我刚才提到的:如果您想多次访问字典,那么字典只在性能方面有用。解释器必须遍历整个数组并对每个条目进行散列以创建它。你说过你只想提取一个值。因此,使用嵌套循环的解决方案应该比创建字典便宜。您说过这81个条目是硬连接的。在call.item中,已用时间标记是否也始终显示在同一位置?如果是,您可以删除第二个for循环并直接访问它。e、 g.如果它总是出现在第66个位置item_value=call.item[66][1]我已经接受了这个答案,但为了完整起见-最后我只做了item_value=call[34][1][0]
success_calls =  client.service.selectRowset(tables[table], sfilter, None, None, None)[1]
total_time = calls_num = 0
for call in success_calls:
   for key in range(len(call.item)):
       if call.item[key][0] is "elapsed_time":
           item_value = call.item[key][1]
   total_time += int(item_value)