I have a weird problem, as I am trying to generate a list of dictionaries to pass them as a parameter to a function. Designing the input "by hand" looks like this:
params = [
    # Amazon
    {
            'q': "AMZN",
            'x': "NASDAQ",
    },
            {
            'q': "PIH",
            'x': "NASDAQ",
    },
    {
            'q': "AIR",
            'x': "NYSE",
    },
    {
            'q': "FCO",
            'x': "NYSEAMERICAN",
    },
    {
            'q': "7201",
            'x': "TYO",
    }
].
I have tried to generate a similar list of dictionaries from a txt file containing a list of tickers (one per line) with the following code:
info = {}
params = []
with open('Test_Tickers.txt') as f:
   for line in f:
       info['q'] = line.rstrip()
       info['x'] = "NYSE"
       params.append(info)
       print(info)
The frustrating part is that while the print(info) returns the correct dictionaries
{'q': 'ABB', 'x': 'NYSE'}
{'q': 'ABBV', 'x': 'NYSE'}
{'q': 'ABC', 'x': 'NYSE'}
{'q': 'ABEV', 'x': 'NYSE'}
...
{'q': 'IJS', 'x': 'NYSE'}
the params looks like this:
[{'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x':         'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, {'q': 'IJS', 'x': 'NYSE'}, ... ]
How can I corrent the code so that the dictionaries contain all the tickers and not only the last one?
 
    