为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

万千封印 2021-11-02 13:58:56
试图弄清楚如何做到这一点,但尚未找到一个好的解决方案。我从 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 asti = iter(ast.literal_eval(data))dic = dict(zip(i, i))for key , value in dic.items():    print(key, " :: ", value)
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

这应该这样做。假设列表保存到一个变量l:


keys = l[::2]

vals = l[1::2]

dic  = dict(zip(keys, vals))


查看完整回答
反对 回复 2021-11-02
?
阿晨1998

TA贡献2037条经验 获得超6个赞

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


import ast

i = iter(ast.literal_eval(data))

dict(zip(i, i))


查看完整回答
反对 回复 2021-11-02
?
长风秋雁

TA贡献1757条经验 获得超7个赞

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


new_data = []

for i in range(0, len(data), 2):

    new_data.append((data[i], data[i+1]))

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


查看完整回答
反对 回复 2021-11-02
  • 3 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号