gpt4 book ai didi

python - 从嵌套列表中获取不同的列表

转载 作者:行者123 更新时间:2023-11-28 17:29:53 24 4
gpt4 key购买 nike

我是从 javascript/nodeJS 成长而来的 Python 新手。我有一个带有嵌套列表的 python 字典,我在访问时遇到了很多麻烦。我需要拉出嵌套列表,以便检查独特的电子邮件。这是我的 GET 请求返回的内容:

{"data": [{"login_date": "2014-04-17T19:14:29+08:00", "email": "walter.elwyn@yahoo.com"}, {"login_date": "2014-04-22T09:31:56+04:00", "email": "helyn67@cruickshankmckenzie.com"}]

返回的实际数据字典要长得多,但你明白了……所以我有两个问题:

  1. 如何通过电子邮件访问内容字典中的特定点

  2. 我如何循环遍历唯一电子邮件的字典?

这是我的代码:

from flask import Flask
import requests
import urllib2
app = Flask(__name__)


@app.route('/')
def hello_world():
content = urllib2.urlopen('https://9g9xhayrh5.execute-api.us-west-2.amazonaws.com/test/data').read()

print content

return 'check console'

if __name__ == '__main__':
app.run()

最佳答案

如果你有这样的结构:

>>> response = {"data": [{"login_date": "2014-04-17T19:14:29+08:00", "email": "walter.elwyn@yahoo.com"}, {"login_date": "2014-04-22T09:31:56+04:00", "email": "helyn67@cruickshankmckenzie.com"}]}

那么你所拥有的是一个带有键 data

的字典
>>> response['data']
[{'login_date': '2014-04-17T19:14:29+08:00', 'email': 'walter.elwyn@yahoo.com'}, {'login_date': '2014-04-22T09:31:56+04:00', 'email': 'helyn67@cruickshankmckenzie.com'}]

您可以获得具有列表理解的电子邮件列表:

>>> [user['email'] for user in response['data']]
['walter.elwyn@yahoo.com', 'helyn67@cruickshankmckenzie.com']

How do I loop over the dictionary for unique emails?

要使该列表独一无二,您可以使用集合理解:

>>> {user['email'] for user in response['data']} 
set(['helyn67@cruickshankmckenzie.com', 'walter.elwyn@yahoo.com'])

How do I access a specific point by e-mail in the content dictionary

如果要过滤给定的电子邮件,可以使用 filter()

>>> filter(lambda user: user['email'] == 'walter.elwyn@yahoo.com', response['data'])
[{'login_date': '2014-04-17T19:14:29+08:00', 'email': 'walter.elwyn@yahoo.com'}]

If I do content['data] in my case, I get an internal server error

那是因为要执行 content['data']content 需要是一个类似 dict 的对象。让我们使用 requests 库来做你想做的事:

>>> import requests
>>> content = requests.get('https://9g9xhayrh5.execute-api.us-west-2.amazonaws.com/test/data')
>>> response = content.json() # reads the data as JSON, into a dict-like object
>>> response.keys()
[u'data']

现在你可以使用response['data']

关于python - 从嵌套列表中获取不同的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35205487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com