我正在解析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>
},
}]
我需要提取与特定键对应的单个值。 我遇到了两个问题:
result.item[][]
)我对python很新,如果问题看起来太简单,请提前抱歉。
我当前的代码看起来有点像:
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)
答案 0 :(得分:0)
您可以为所有这些值创建Dictionary
,以使用特定键访问特定值。字典是散列表的pythons实现。请注意,这只有在您多次访问字典时才有意义,因为您需要在创建哈希表期间运行数组并为每个条目计算哈希值。如果您只想提取单个值,最好的解决方案是像在代码示例中一样运行数组。在最坏的情况下,您的复杂度为O(n)
。
您可以使用int("12345")
轻松地在python中将String解析为Integer。不过要小心。如果您的字符串不能解析为整数,则可能会引发ValueError
异常。如果您的elapsed_time
是真实数字而不是自然数字,则可以使用float("22.2123")