Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding two dictionaries to list by array

This is my below code and I would like to add jsondict value to parsedData list

parsedData = []
userData = {}
jsondict=[{u'Name': u'BILL', u'ID': u'1028', u'CARS': [u'BMW', u'AUDI']}, 
         {u'Name ': u'TOM', u'ID': u'1029', u'CARS': [u'TOYOTA', u'FERRARI']}]
for distro in jsondict:
    userData['Name'] = distro['Name']
    userData['ID'] = distro['ID']
    userData['CARS1'] = distro['CARS'][0]
    userData['CARS2'] = distro['CARS'][1]
    parsedData.append(userData)

But from this code I am getting two times last dict which is not correct and expected output should be like this:

[{u'Name': u'BILL', u'ID': u'1028', u'CARS1': u'BMW',u'CARS2': u'AUDI'}, 
{u'Name ': u'TOM', u'ID': u'1029', u'CARS1': u'TOYOTA', u'CARS2':u'FERRARI'}]
like image 982
bornomala Avatar asked Feb 04 '26 07:02

bornomala


1 Answers

You are referencing the same dict twice (parsedData[0] is parsedData[1] evaluates to true). To stop this from happening, just create the dict in the loop:

parsedData = []
jsondict=[{u'Name': u'BILL', u'ID': u'1028', u'CARS': [u'BMW', u'AUDI']}, 
         {u'Name ': u'TOM', u'ID': u'1029', u'CARS': [u'TOYOTA', u'FERRARI']}]
for distro in jsondict:
    userData = {}
    userData['Name'] = distro['Name']
    userData['ID'] = distro['ID']
    userData['CARS1'] = distro['CARS'][0]
    userData['CARS2'] = distro['CARS'][1]
    parsedData.append(userData)
like image 85
MegaIng Avatar answered Feb 05 '26 20:02

MegaIng