【问题标题】:Add a list of key value pairs to existing list when the key is not available当键不可用时,将键值对列表添加到现有列表
【发布时间】:2021-12-30 14:47:41
【问题描述】:

我有一列包含每行的 json 字符串。 我将它们转换为列表并使用 json normalize 以数据框的形式提取信息。

将 extras 视为数据框数据中的列,我首先使用以下查询以列表的形式提取数据

extras = extras.extras.apply(json.loads).values.tolist()

现在在将其转换为列表时,我使用以下命令提取信息

extras_df = pd.json_normalize(
extras,
record_path =['inventory_data'], 
meta=['job_id','margin','stock','mrp',discount],
record_prefix = 'product_',
sep="_",
errors='ignore' )

我在这里遇到一个关键错误,因为我提取的上述附加列表中的一些列表中没有“inventory_data”。如果信息不可用,我需要能够在其旁边添加一个大小和数量的空键值对

以下数据相同

extras = [
  {'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
  'stock': '0',
  'mrp': 1899.0,
  'discount': 55.0,
  'inventory_data': [{'size': 'M', 'quantity': '0'},
   {'size': 'L', 'quantity': '0'},
   {'size': 'XL', 'quantity': '0'},
   {'size': 'S', 'quantity': '0'}],
  'margin': 'Low',
},
 {'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
  'stock': '0',
  'mrp': 999.0,
  'discount': 50.0,
  'inventory_data': [{'size': 'L', 'quantity': '0'},
   {'size': 'S', 'quantity': '0'},
   {'size': 'M', 'quantity': '0'},
   {'size': 'XXL', 'quantity': '0'},
   {'size': 'XL', 'quantity': '0'}],
  },
 **{'job_id': 'b1b4354e-7869-442a-8763-dafbd9f33a5a',
  'stock': '0',
  'mrp': 2799.0,
  'discount': 52.0,
  'margin': 'Low',
  }]**

这里列表中的第三个元素没有库存数据键值对。如果列表中缺少此信息,我想在此处插入空值

提前感谢这里的任何线索

【问题讨论】:

    标签: python json list dictionary json-normalize


    【解决方案1】:

    您可以使用从dict中获取的方法来设置默认值。

    如果key不存在,方法返回NULL。

    d = {"key":"value"}
    
    d.get("key") 
    # "value"
    
    d.get("aloha") 
    # None
    

    如果键也不存在,你可以传递一个默认值:

    d.get("not exist","default")
    # "default"
    

    参考dict

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2010-11-09
      • 2011-04-13
      • 2012-08-01
      • 2012-04-19
      相关资源
      最近更新 更多