ChromeSessionParser syntax issue
<p>I am running into an issue with parts of my code i have added my errors at the bottom. The issue is arising around the sqllite3.operationError part. i attempted removing it but when i do another error occurs for line 68          'def getpath():', i cant see why the errors are showing up any and all help is appreciated as always thanks. My code is generally for taking Login data out of my database and displaying in an csv file</p>

<pre><code>import os
import sys
import sqlite3
try:
    import win32crypt
except:
    pass
import argparse



def args_parser():
    parser = argparse.ArgumentParser(description="Retrieve Google Chrome Passwords")
    parser.add_argument("--output", help="Output to csv file", action="store_true")
    args = parser.parse_args()
    if args.output:
        csv(main())
    else:
            for data in main():
                print (data)



def main():
    info_list = []
    path = getpath()
    try:
        connection = sqlite3.connect(path + "Login Data")
        with connection:
            cursor = connection.cursor()
            v = cursor.execute('SELECT action_url, username_value, password_value FROM logins')
            value = v.fetchall


        for information in value:
            if os.name == 'nt':
                password = win32crypt.CryptUnprotectData(information[2], None, None, None, 0)[1]
                if password:
                    info_list.append({
                        'origin_url': information[0],
                        'username': information[1],
                        'password': str(password)
                    })



    except sqlite3.OperationalError as e:
        e = str(e)
        if (e == 'database is locked'):
            print('[!] Make sure Google Chrome is not running in the background')
            sys.exit(0)
        elif (e == 'no such table: logins'):
            print('[!] Something wrong with the database name')
            sys.exit(0)
        elif (e == 'unable to open database file'):
            print('[!] Something wrong with the database path')
            sys.exit(0)
        else:
            print (e)
            sys.exit(0)



    return info_list



def getpath():
        if os.name == "nt":
            # This is the Windows Path
            PathName = os.getenv('localappdata') + '\\Google\\Chrome\\User Data\\Default\\'
            if (os.path.isdir(PathName) == False):
                print('[!] Chrome Doesn\'t exists')
                sys.exit(0)

            return PathName



def csv (info):
    with open ('chromepass.csv', 'wb') as csv_file:
        csv_file.write('origin_url,username,password \n' .encode('utf'))
        for data in info:
            csv_file.write(('%s, %s, %s \n' % (data['origin_url'], data['username'], data['password'])).encode('utf-8'))
    print ("Data written to Chromepass.csv")




if __name__ == '__main__':
    args_parser()
</code></pre>

<p>Errors</p>

<pre><code> Traceback (most recent call last):
  File "C:/Users/Lewis Collins/Python Project/ChromeDB's/ChromeSessionParser.py", line 90, in &lt;module&gt;
    args_parser()
  File "C:/Users/Lewis Collins/Python Project/ChromeDB's/ChromeSessionParser.py", line 19, in args_parser
    for data in main():
  File "C:/Users/Lewis Collins/Python Project/ChromeDB's/ChromeSessionParser.py", line 35, in main
    for information in value:
TypeError: 'builtin_function_or_method' object is not iterable
</code></pre>