1

i'm trying to convert list of dictionaries to comma separated string , but some extra fields of dictionary are coming

data = [{'groupid': '28', 'name': 'TEST 2', 'internal': '0', 'flags': '0'}, {'groupid':'27', 'name': 'CUSTOMER/TEST 1', 'internal': '0', 'flags': '0'}]

expected output = TEST2,CUSTOMER/TEST 1

my script: s = [','.join(map(str,i.values())) for i in data]

output i'm getting : ['28,TEST 2,0,0', '27,CUSTOMER/TEST 1,0,0']

Brian
  • 4,518
  • 4
  • 16
  • 34
Valakatla Ashok
  • 279
  • 1
  • 2
  • 12

3 Answers3

4

Try this:

data = [{'groupid': '28', 'name': 'TEST 2', 'internal': '0', 'flags': '0'}, {'groupid':'27', 'name': 'CUSTOMER/TEST 1', 'internal': '0', 'flags': '0'}]
print([d["name"] for d in data])

Output:

['TEST 2', 'CUSTOMER/TEST 1']
baduker
  • 15,071
  • 9
  • 26
  • 44
2

For the expected out, you simply need to get the value corresponding to the key name:

s = ','.join(i['name'] for i in data)
Krishna Chaurasia
  • 8,130
  • 6
  • 18
  • 31
1

Data is defined as dictionary object. Apply elt for filter.


data = [{'groupid': '28', 'name': 'TEST 2', 'internal': '0', 'flags': '0'}, 
      {'groupid':'27', 'name': 'CUSTOMER/TEST 1', 'internal': '0', 'flags': '0'}]

expected output = [elt["name"] for elt in data]
print(expected output)
output = ['TEST 2', 'CUSTOMER/TEST 1']
dtc348
  • 616
  • 6
  • 16