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

试图弄清楚如何做到这一点,但尚未找到一个好的解决方案。我从 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)


万千封印
浏览 193回答 3
3回答

慕容森

这应该这样做。假设列表保存到一个变量l:keys = l[::2]vals = l[1::2]dic  = dict(zip(keys, vals))

阿晨1998

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

长风秋雁

假设您在名为 的python 数组中有上述内容data,您可以执行以下操作:new_data = []for i in range(0, len(data), 2):    new_data.append((data[i], data[i+1]))现在 new_data 将是一个元组列表。如果需要,您当然可以创建更好的数据结构来保存这些对。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python