Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python列表拆分

Python列表拆分
EN

Stack Overflow用户
提问于 2013-09-01 06:59:25
回答 2查看 173关注 0票数 1

我只想保留namevalue (键值对),这是list。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'c_user',
  u'path': u'/',
  u'secure': True,
  u'value': u'100001724251788'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'csm',
  u'path': u'/',
  u'secure': False,
  u'value': u'2'},
 {u'domain': u'.facebook.com',
  u'expiry': 1441116441,
  u'name': u'datr',
  u'path': u'/',
  u'secure': False,
  u'value': u'AUojUqoBUYA2wj4j04GT5XvX'},
 {u'domain': u'.facebook.com',
  u'expiry': 1441116442,
  u'name': u'lu',
  u'path': u'/',
  u'secure': False,
  u'value': u'RitwQJMNRJ8siUh_9eIj4SMw'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u's',
  u'path': u'/',
  u'secure': True,
  u'value': u'Aa7ebY1RvmeilCX8.BSI0od'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'xs',
  u'path': u'/',
  u'secure': True,
  u'value': u'62%3AjNm_3ySkegf7cg%3A2%3A1378044445%3A10945'},
 {u'domain': u'.facebook.com',
  u'expiry': 1380636479,
  u'name': u'fr',
  u'path': u'/',
  u'secure': False,
  u'value': u'0aU8cfDygWXo1ETQA.AWV9BQIzKARYURFpuxUdXLoXcl8.BSI0od.j_.FIj.AWXjyq2t'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'sub',
  u'path': u'/',
  u'secure': False,
  u'value': u'64'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'p',
  u'path': u'/',
  u'secure': False,
  u'value': u'125'},
 {u'domain': u'.facebook.com',
  u'expiry': None,
  u'name': u'presence',
  u'path': u'/',
  u'secure': True,
  u'value': u'EM378046939EuserFA21B01724251788A2EstateFDsb2F0Et2F_5b_5dElm2FnullEuct2F1378043847BEtrFnullEtwF2448105081EatF1378046499377G378046939504CEchFDp_5f1B01724251788F13CC'}]
[Dbg]>>> type(cookies)
<type 'list'>
[Dbg]>>> newlist = [{'domain': i['domain'], 'name': i['name'], 'value': i['value']} for i in cookies]
[Dbg]>>> newlist
[{'domain': u'.facebook.com', 'name': u'c_user', 'value': u'100001724251788'},
 {'domain': u'.facebook.com', 'name': u'csm', 'value': u'2'},
 {'domain': u'.facebook.com',
  'name': u'datr',
  'value': u'AUojUqoBUYA2wj4j04GT5XvX'},
 {'domain': u'.facebook.com',
  'name': u'lu',
  'value': u'RitwQJMNRJ8siUh_9eIj4SMw'},
 {'domain': u'.facebook.com',
  'name': u's',
  'value': u'Aa7ebY1RvmeilCX8.BSI0od'},
 {'domain': u'.facebook.com',
  'name': u'xs',
  'value': u'62%3AjNm_3ySkegf7cg%3A2%3A1378044445%3A10945'},
 {'domain': u'.facebook.com',
  'name': u'fr',
  'value': u'0aU8cfDygWXo1ETQA.AWV9BQIzKARYURFpuxUdXLoXcl8.BSI0od.j_.FIj.AWXjyq2t'},
 {'domain': u'.facebook.com', 'name': u'sub', 'value': u'64'},
 {'domain': u'.facebook.com', 'name': u'p', 'value': u'125'},
 {'domain': u'.facebook.com',
  'name': u'presence',
  'value': u'EM378046939EuserFA21B01724251788A2EstateFDsb2F0Et2F_5b_5dElm2FnullEuct2F1378043847BEtrFnullEtwF2448105081EatF1378046499377G378046939504CEchFDp_5f1B01724251788F13CC'}]

至:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <Cookie>.facebook.com:datr:gyenULkNKjCIJFTYDz2qbp9I
    <Cookie>.facebook.com:c_user:120004707330532
    <Cookie>.facebook.com:fr:0LglznOeWFepXcvAF.AWVm9awu51UtdvT65f9HqxYXUsI.BQp4ej._Q.AAA.AWW8GKGl
    <Cookie>.facebook.com:lu:gg1dq7zzNjC6pd7W9W0SFHnA
    <Cookie>.facebook.com:s:Aa5Zmp1zeLF36x3s
    <Cookie>.facebook.com:xs:1%3AWvWR_uXSzC3p3w%3A0%3A1374938392
    <Cookie>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-01 07:20:28

要从字典列表中提取任意名称,可以使用operator.itemgetter()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from operator import itemgetter

names = ["name", "value"] # fields to extract
values = itemgetter(*names) # function that extracts values from an input dict

result = [dict(zip(names, values(d))) for d in list_of_dicts]
print(result)

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[{'name': u'c_user', 'value': u'100001456251788'},
 {'name': u'csm', 'value': u'2'},
 {'name': u'datr', 'value': u'AUojdfkBUYA2wj4j04GT5XvX'}]
票数 5
EN

Stack Overflow用户

发布于 2013-09-01 07:06:15

您可以使用所谓的“列表理解”来剔除所需的键/值对:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new_list = [{'name':x['name'], 'value':x['value']} for x in list]

一个额外的解释:它所做的是循环遍历list中的条目,将每个条目赋值给x,然后在前面的表达式中应用该值,在本例中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{'name':x['name'], 'value':x['value']}

这可以快速从更全面的列表中筛选出您想要的元素,或者创建一个新列表,您可以从现有列表的元素中使用一个简单的表达式来定义该列表。

通过将外部方括号[]替换为{},也可以做同样的事情来创建一个新字典。

另外:如果您要将新列表提供给一个循环,并且您的原始数据集相当大,您可以创建一个“生成器”,这类似于一个列表,您可以遍历它,但它不会将新的数据子集存储在内存中。生成生成器将方括号[]替换为括号()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new_generator = ({'name':x['name'], 'value':x['value']} for x in list)
for element in new_generator:
    ... do whatever ...

这避免了内存中的大量数据重复,并且只在循环进行时计算每个元素。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18559635

复制
相关文章
JSON数据获取指南!
在互联网时代,数据是金钱的来源。然而,要从海量的网页中提取需要的数据并不容易。本文将带你了解如何使用Node.js编写简易爬虫程序,帮助你轻松获取并处理JSON数据,让你不再为数据发愁。
用户614136809
2023/09/25
3840
jsonp获取json数据
这两天做微信端JS接口,当时遇到的第一个问题就是权限验证的参数请求,当你请求access_token等的时候,就会存在跨域问题:然后在网上查了,采用ajax的jsonp进行跨域请求,后来报错了,返回的结果错误。然后认真看了一下文档,发现ajax的jsonp返回的数据是callback(json),卡到这里。最后同时为了安全的考虑,我就将这一部分的权限验证参数在后端做,然后前端请求,这样就避免了跨域,同时将安全考虑进去了。
Rattenking
2021/01/29
2.4K0
burpsuite 无法获取本地数据
当Firefox和burpsuite设置代理地址127.0.0.1,端口:80内容可以显示在firefox网页而无法在burpsuite显示,求教是什么原因?
用户7446386
2020/06/09
2.2K0
Jquery 使用getJSON 获取json数据
1.先引用jq获取下载到本地 CDN地址:https://code.jquery.com/jquery-latest.js
Alone88
2019/10/22
3.5K0
zabbix的server无法获取数据
背景 部署完Zabbix agent之后,Server无法获取到数据 报错 服务端 [root@hf-01 ~]# zabbix_get -s 192.168.202.131 -p 10050 -k 'my.estab.count' zabbix_get [3088]: Get value error: cannot connect to [[192.168.202.131]:10050]: [113] No route to host [root@hf-01 ~]# 分析 服务端ping
运维小白
2022/01/06
1.7K0
Selenium+BeautifulSoup+json获取 Script 标签内的 json 数据
Selenium爬虫遇到 数据是以 JSON 字符串的形式包裹在 Script 标签中, 假设Script标签下代码如下:
诡途
2022/05/09
3.3K0
BeautifulSoup 获取 Script 标签内的 json 数据
有时候,我们可能会遇到数据是以 JSON 字符串的形式包裹在 Script 标签中,此时使用 BeautifulSoup 仍然可以很方便的提取。
happyJared
2019/11/03
4.7K0
JavaScript 递归遍历json串获取相关数据
url: "/home/level4Menu1",
授客
2019/11/18
3.4K0
JavaScript 递归遍历json串获取相关数据
python-获取URL中的json数据
数据源为某系统提供的URL,打开是json文件,python代码获取如下: URL替换成自己的即可。 import urllib.request def get_record(url): resp = urllib.request.urlopen(url) ele_json = json.loads(resp.read()) return ele_json if __name__ == '__main__': print(get_record('http://abc.co/
py3study
2020/01/16
5.5K0
Js解析Json数据获取元素JsonPath与深度
JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java,JsonPath 对于 JSON 来说,相当于 XPATH 对于 XML。
大道七哥
2020/03/28
13.6K0
Js解析Json数据获取元素JsonPath与深度
php的json_decode函数无法解析json
作者:matrix 被围观: 5,526 次 发布时间:2014-09-04 分类:零零星星 | 9 条评论 »
HHTjim 部落格
2022/09/26
2K0
[接口测试 - 基础篇] 04 无法绕过的json解析
概述 我们先看一下什么是json。 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 JSON 语法规则 在javascript语言中,一切都是对象。因此,任何
苦叶子
2018/04/09
3.1K0
解决mybatis 无法映射 数据库 json字段的问题
1.前言 MySQL从5.7版本之后开始支持JSON数据类型,相比于JSON格式的字符串类型有如下优势:存储在JSON列中的JSON文档的会被自动验证。无效的文档会产生错误;最佳存储格式。存储在JSON列中的JSON文档会被转换为允许快速读取文档元素的内部格式。 2.背景 mybatis目前还不支持映射json的数据格式,需要我们自己进行增强 3.实现 对mybatis TypeHandler进行增强 3.1ListStringTypeHandler 核心代码 package com.xxx.xxx.pip
特特
2022/05/22
4.5K2
php – 通过curl从url获取JSON数据「建议收藏」
我试图通过curl连接从URL获取JSON数据.当我打开链接时:它显示{“version”:“N / A”,“success”:true,“status”:true}. 现在,我希望获得以上内容.
全栈程序员站长
2022/07/11
4K0
python flask里 post请求,JSON数据获取方式总结
#!flask/bin/python #encodig=utf-8 # _*_ coding:utf-8 _*_ # Writer : byz # dateTime : 2016-08-05 from flask import Flask, jsonify, request, abort import json app = Flask(__name__) @app.route('/ana', methods=['GET', 'POST']) def call_analysis(): print
用户1214487
2018/04/16
8.6K0
map怎么转json对象_json怎么获取map
JSON 对象保存在大括号内。就像在JavaScript中, 对象可以保存多个 键/值 对。Map对象保存键/值对,是键/值对的集合。任何值(对象或者原始值) 都可以作为一个键或一个值。Object结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应。
全栈程序员站长
2022/09/23
3.5K0
java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
在开发的过程中,有时候我们需要设计一个数据接口。有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题。 第一步:简单的设计一个数据接口。 数据接口,听起来高大上,其实呢就是一个简单的Serlvlet,在有get的请求的时候,返回我们要提供的数据就可以。现在JSON数据格式已经很普遍,因为很方便,所以我们做一个json数据的接口。直接看代码 先建立一个实体类,就是包装我们的数据的 bean/kapian.java package bean; public class kapian { /
ShenduCC
2018/04/27
3.7K0
java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据
vmware workstation无法获取IP
有时在安装好虚拟机后,dhclient会发现无法获取IP地址 原因,有可能是连接网络模式的冲突——>个人推测 解决办法: 这时候只需删除桥接模式和仅主机模式,只留下NAT模式 这时候在
运维小白
2018/02/06
2.5K0
vmware workstation无法获取IP
虚拟机无法联网 无法自动获取IP
突然有一天开发无法连接上虚拟机了,打开虚拟机先是发现无法联网,后来ifconfig连IP都没有了,只有一个127.0.0.1
叶茂林
2023/09/02
3310
点击加载更多

相似问题

JSON无法获取数据

22

无法获取json数据

22

无法从json获取数据

10

无法获取json对象数据

20

我无法获取JSON数据

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文