code: def ParseHeader(table):
    
    precondition.AssertIterableType(table, dict)
  
    prototype = None  # type: List[Text]
  
    for row in table:
      columns = list(iterkeys(row))
      if prototype is None:
        prototype = columns
      elif prototype != columns:
        message = "Expected columns '{expected}', got '{actual}' for table {json}"
        message = message.format(expected=prototype, actual=columns, json=table)
        raise ValueError(message)
  
    result = rdf_osquery.OsqueryHeader()
    for name in prototype or []:
      result.columns.append(rdf_osquery.OsqueryColumn(name=name))
    return result
docs: Parses header of osquery output.
  
    Args:
      table: A table in a "parsed JSON" representation.
  
    Returns:
      A parsed `rdf_osquery.OsqueryHeader` instance.