从javascript var d使用python创建字典

2024-10-03 06:27:56 发布

您现在位置:Python中文网/ 问答频道 /正文

试图找出如何做到这一点,但还没有找到一个好的解决办法。我从XML响应中提取了这些数据。它在一个变量标签里。现在我想做的是用它创建一个字典。这个域名.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)

Tags: 数据key答案comvaluedomain标签xml
3条回答

这样就可以了。假设列表保存到变量l

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

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

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

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

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

现在新的数据将是一个元组列表。如果需要,您当然可以创建一个更好的数据结构来保存这些对。你知道吗

相关问题 更多 >