I am trying to append to the parent but Python doesn't append to the parent.
data = [(33, 'paypal.com', 'Alexa Pages'), (33, 'paypal.com', '404 Pages'), (32, 'stackoverflow.com', 'Alexa Pages'), (2, 'reddit.com', None), (1, 'yahoo.com', 'Alexa Pages'), (1, 'yahoo.com', '404 Pages')]
res = defaultdict(list)
for id, subdomain, name in data:
res[id].append(name)
#res[id].append(subdomain)
resjson=[]
for id, name in res.items():
resjson.append({'id':id, 'name':name, 'subdomain':subdomain} )
Returns
[
{
"id": 33,
"name": [
"Alexa Pages",
"404 Pages"
],
"subdomain": "paypal.com"
},
{
"id": 32,
"name": [
"Alexa Pages"
],
"subdomain": "paypal.com"
},
{
"id": 2,
"name": [
null
],
"subdomain": "paypal.com"
},
{
"id": 1,
"name": [
"Alexa Pages",
"404 Pages"
],
"subdomain": "paypal.com"
}
]
When I try to append "subdomain"
to the dictionary, it appends to the name
field.
data = [(33, 'paypal.com', 'Alexa Pages'), (33, 'paypal.com', '404 Pages'), (32, 'stackoverflow.com', 'Alexa Pages'), (2, 'reddit.com', None), (1, 'yahoo.com', 'Alexa Pages'), (1, 'yahoo.com', '404 Pages')]
res = defaultdict(list)
for id, subdomain, name in data:
res[id].append(name)
res[id].append(subdomain)
resjson=[]
for id, name in res.items():
resjson.append({'id':id, 'name':name, 'subdomain':subdomain} )
Returns
[
{
"id": 33,
"name": [
"Alexa Pages",
"paypal.com",
"404 Pages",
"paypal.com",
],
"subdomain": "paypal.com"
},
{
"id": 32,
"name": [
"Alexa Pages",
"stackoverflow.com"
],
"subdomain": "paypal.com"
},
{
"id": 2,
"name": [
null,
"reddit.com"
],
"subdomain": "paypal.com"
},
{
"id": 1,
"name": [
"Alexa Pages",
"yahoo.com",
"404 Pages",
"yahoo.com"
],
"subdomain": "paypal.com"
}
]
There is the main problem:
- It doesn't update the
"subdomain"
field. - When I try to add
subdomain
in this loop:for id, name, subdomain in res.items()
, I get theValueError: not enough values to unpack (expected 3, got 2)
error.