Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取与嵌套列表不同的列表_Python_Dictionary_Flask - Fatal编程技术网

Python 获取与嵌套列表不同的列表

Python 获取与嵌套列表不同的列表,python,dictionary,flask,Python,Dictionary,Flask,我是从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": "he

我是从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"}]
返回的实际数据字典要长得多,但您得到了一个要点。。。所以我有两个问题:

  • 如何通过电子邮件访问内容词典中的特定点

  • 如何在字典中循环查找唯一的电子邮件

  • 这是我的密码:

    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"}]}
    
    那么您拥有的是一个带有键
    数据的dict

    >>> 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']
    
    >>> {user['email'] for user in response['data']} 
    set(['helyn67@cruickshankmckenzie.com', 'walter.elwyn@yahoo.com'])
    
    如何在字典中循环查找唯一的电子邮件

    要使该列表唯一,可以使用集合:

    >>> [user['email'] for user in response['data']]
    ['walter.elwyn@yahoo.com', 'helyn67@cruickshankmckenzie.com']
    
    >>> {user['email'] for user in response['data']} 
    set(['helyn67@cruickshankmckenzie.com', 'walter.elwyn@yahoo.com'])
    
    如何通过电子邮件访问内容词典中的特定点

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

    如果在我的情况下执行内容['data],我会得到一个内部服务器错误

    这是因为要执行
    content['data']
    content
    需要是类似dict的对象。让我们使用
    requests
    lib执行您想要的操作:

    >>> 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']

    如果你只有一个条目,为什么要使用字典?我没有写APIso
    content
    是你的字典吗?是的,很抱歉,为了获得唯一的电子邮件ID,{user['email']for user in response['data']}好吧,但让我抓狂的是如果我做了response['data']…content['data]在我的例子中,我遇到了一个内部服务器错误@AdamWeitzman,这是一个使用
    请求
    而不是
    urllib2
    的工作片段,我希望没问题!您可能会喜欢ok惊奇,谢谢您的帮助..当我使用打印响应['data]时我在终端中得到一个JSON打印输出,在浏览器中得到一个内部服务器错误。当我使用返回响应['data']时,我到处都有错误,这是怎么回事?用
    app运行你的flask应用程序。运行(debug=True)
    并找出答案,我认为问题与我的答案无关,因为我粘贴的代码片段是实时运行的:)