从javascript var数据使用python创建字典

时间:2019-02-07 22:23:54

标签: javascript python dictionary

试图弄清楚该怎么做,还没有找到一个好的解决方案。我从XML响应中提取了这些数据。它在var标签中。现在我想做的就是从中创建一个字典。 domain.com应该与其后面列出的数字配对。

这是数据:

[
    'cb131.domain1.com', '147827', 
    'cb143.domain2.com', '147825', 
    'cb175.domain1.com', '147454', 
    'cb190.domain.com', '146210', 
    'cb201.domain.com', '146208', 
    'cb219.domain.com', '146042', 
    'cb225.domain.com', '146282', 
    'cb900.domain.com', '148461', 
    'cb901.domain.com', '148493', 
    'cb902.domain.com', '148495', 
    'cb903.domain.com', '148497', 
    'cb904.domain.com','148499', 
    'cb905.domain.com', '148501', 
    'cb906.domain.com', '148503', 
    'cb907.domain.com', '148505', 
    'cb908.domain.com', '148507', 
    'cb909.domain.com', '148509'
]

例如,cb131.domain1.com应该与147827配对,cb143.domain2.com应该与147825配对,依此类推。

在如何执行此操作的快速解决方案上画空白。希望有人可以提供帮助。

谢谢!

编辑后,我在下面选择了答案:

我选择了这个答案,还帮助其他人添加了一种打印结果的好方法(数据是我获得的字符串):

import ast
i = iter(ast.literal_eval(data))
dic = dict(zip(i, i))
for key , value in dic.items():
    print(key, " :: ", value)

4 个答案:

答案 0 :(得分:1)

这应该做到。假设列表已保存到变量l

keys = l[::2]
vals = l[1::2]
dic  = dict(zip(keys, vals))

答案 1 :(得分:0)

我还不知道Python是否可以编写代码段,但是:

  • 在Python中初始化一个空字典
  • 创建一个从0到数组长度的for循环计数索引,步长为2。
    • 在内部添加一个字典条目,其键值在索引处,值在索引+ 1
    • 也许检查重复项

此答案对您有帮助吗?

这是Python-快速Google搜索:

dictionary = { }
for idx in range(0, len(data), 2)
   dictionary[data[idx]] = data[idx + 1]

答案 2 :(得分:0)

假设您在名为data的python数组中拥有以上内容,则可以执行以下操作:

new_data = []
for i in range(0, len(data), 2):
    new_data.append((data[i], data[i+1]))

现在new_data将是一个元组列表。如果需要,您当然可以创建一个更好的数据结构来容纳这些对。

答案 3 :(得分:0)

您可以使用ast.literal_eval从输入文本zip解析其自身,然后将生成的元组序列传递给dict构造函数之后,使用列表中的列表创建迭代器:

import ast
i = iter(ast.literal_eval(data))
dict(zip(i, i))