从字典和嵌套字典中的值创建新的json数据



我有两个字典,我希望用两个字典的值创建一个新的json数据,如下所示。

dic_a = [{'name': 'puskas',
  'description': 'puskas is the command center for football',
  'size': '251-1K',
  'revenue': '$50M-$100M',
  'industryTags': ['football federation']}]
dic_b = {'page': 1,
 'total': 14,
 'results': [{'id': 'i01',
   'name': {'fullName': 'luka modric',
    'givenName': 'luka',
    'familyName': 'modric'},
    'role': 'leadership',
   'subRole': 'ceo',
   'title': 'CEO',
   'company': {'name': 'puskas'},
   'email': 'luka@puskas.com',
   'verified': True},
  {'id': 'i02',
   'name': {'fullName': 'gucci mane',
    'givenName': 'gucci',
    'familyName': 'mane'},
   'role': 'leadership',
   'subRole': 'founder',
   'title': 'Co-founder, CTO',
   'company': {'name': 'puskas'},
   'email': 'gucchi.mane@puskas.com',
   'verified': True},
  {'id': 'i03',
   'name': {'fullName': 'tom ford',
    'givenName': 'tom',
    'familyName': 'ford'},
    'role': 'leadership',
   'subRole': 'founder',
   'title': 'founder',
   'company': {'name': 'puskas'},
   'email': 'tomford@puskas.com',
   'verified': True}]}

我想从b中选择值,附加到a,然后转换为json并返回为c。

我已经尝试了一些代码的一些语法我在这里研究,但它不工作。我期望json结果看起来像这样

json_c = [{'name': 'puskas',
  'description': 'puskas is the command center for football',
  'size': '251-1K',
  'revenue': '$50M-$100M',
  'industryTags': ['football federation'],
  'leads': [{'id': 'i01',
   'name': 'luka modric',
   'title': 'CEO',
   'company': {'name': 'puskas'},
   'email': 'luka@puskas.co',
   'verified': True},
  {'id': 'i02',
   'name': 'gucci mane',
   'title': 'Co-founder, CTO',
   'company': {'name': 'gucci'},
   'email': 'gucchi.mane@gucci.com',
   'verified': True},
  {'id': 'i03',
   'name': 'tom ford',
   'title': 'founder',
   'company': {'name': 'xyz'},
   'email': 'tomford@xyz.co',
   'verified': True}]}]   

这些问题可以通过jmespath

轻松解决。
import jmespath
import json 
c = dic_a
c[0]['leads'] = jmespath.search('results[].{id:id, name:name.fullName,title:title ,company:company,email:email,verified:verified }',dic_b)
json_string = json.dumps(c, indent=4, ensure_ascii=False)
print(json_string)   
# [
#     {
#         "name": "puskas",
#         "description": "puskas is the command center for football",
#         "size": "251-1K",
#         "revenue": "$50M-$100M",
#         "industryTags": [
#             "football federation"
#         ],
#         "leads": [
#             {
#                 "id": "i01",
#                 "name": "luka modric",
#                 "title": "CEO",
#                 "company": {
#                     "name": "puskas"
#                 },
#                 "email": "luka@puskas.com",
#                 "verified": true
#             },
#             {
#                 "id": "i02",
#                 "name": "gucci mane",
#                 "title": "Co-founder, CTO",
#                 "company": {
#                     "name": "puskas"
#                 },
#                 "email": "gucchi.mane@puskas.com",
#                 "verified": true
#             },
#             {
#                 "id": "i03",
#                 "name": "tom ford",
#                 "title": "founder",
#                 "company": {
#                     "name": "puskas"
#                 },
#                 "email": "tomford@puskas.com",
#                 "verified": true
#             }
#         ]
#     }
# ]

相关内容

  • 没有找到相关文章

最新更新