Page tree

Release 7.6.2


Contents:

   

Contents:


Filters the keys and values from an Object data type column based on a specified key value.
  • A single field value of an Object data type must have unique keys. Values may, however, be repeated.
  • The order of key-value pairs is not guaranteed.
  • For more information, see Object Data Type.

 

Wrangle vs. SQL: This function is part of Wrangle, a proprietary data transformation language. Wrangle is not SQL. For more information, see Wrangle Language.

Basic Usage

Object literal reference example:

filterobject('{"q":"hello","r","there":"q","world"}', 'q')

Output: Returns an Object of key-value pairs for the q key:

{"q":["hello", "world"]}

Column reference example:

filterobject(myObjects, '[k1,k2]')

Output: Returns an Object of key-value pairs for all instances of the k1 and k2 keys.

Syntax and Arguments

filterobject(obj,'keys')


ArgumentRequired?Data TypeDescription
obj_colYString or ObjectName of column, function returning an Object, or Object literal to be filtered
keysYArrayArray representing the keys to filter. Each element can be a String, function returning a String, or a reference to a column of String values.

For more information on syntax standards, see Language Documentation Syntax Notes.

obj_col

Object literal, name of the Object column, or function returning an Object whose keys you want to extract into an array.

Usage Notes:

Required?Data TypeExample Value
YesObject literal, function, or column referencemyObj

keys

This parameter contains an Array of Strings, each of which represents a key whose values are to be returned with the key as the output of the function.

  • For a single key, this value can be a regular String value.
  • For multiple keys, this value is an Array of String values.

Usage Notes:

Required?Data TypeExample Value
YesString or Array['key1','key2','key3']

Examples


Tip: For additional examples, see Common Tasks.

Example - Parsing query parameters from URLs

This examples illustrates how you can extract component parts of a URL using the following functions:
  • DOMAIN - extracts the domain value from a URL. See DOMAIN Function.
  • SUBDOMAIN - extracts the first group after the protocol identifier and before the domain value. See SUBDOMAIN Function.
  • HOST - returns the complete value of the host from an URL. See HOST Function.
  • SUFFIX - extracts the suffix of a URL. See SUFFIX Function.
  • URLPARAMS - extracts the query parameters and values from a URL. See URLPARAMS Function.
  • FILTEROBJECT - filters an Object value to show only the elements for a specified key. See FILTEROBJECT Function.

Source:

Your dataset includes the following values for URLs:

URL
www.example.com
example.com/support
http://www.example.com/products/
http://1.2.3.4
https://www.example.com/free-download
https://www.example.com/about-us/careers
www.app.example.com
www.some.app.example.com
some.app.example.com
some.example.com
example.com
http://www.example.com?q1=broken%20record
http://www.example.com?query=khakis&app=pants
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wrist

Transformation:

When the above data is imported into the application, the column is recognized as a URL. All values are registered as valid, even the IPv4 address.

To extract the domain and subdomain values:

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula DOMAIN(URL)
Parameter: New column name 'domain_URL'

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula SUBDOMAIN(URL)
Parameter: New column name 'subdomain_URL'

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula HOST(URL)
Parameter: New column name 'host_URL'

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula SUFFIX(URL)
Parameter: New column name 'suffix_URL'

You can use the Alteryx® pattern in the following transformation to extract protocol identifiers, if present, into a new column:

Transformation Name Extract text or pattern
Parameter: Column to extract from URL
Parameter: Option Custom text or pattern
Parameter: Text to extract `{start}%*://`

To clean this up, you might want to rename the column to protocol_URL.

To extract the path values, you can use the following regular expression:

NOTE: Regular expressions are considered a developer-level method for pattern matching. Please use them with caution. See Text Matching.

Transformation Name Extract text or pattern
Parameter: Column to extract from URL
Parameter: Option Custom text or pattern
Parameter: Text to extract /[^*:\/\/]\/.*$/

The above transformation grabs a little too much of the URL. If you rename the column to path_URL, you can use the following regular expression to clean it up:

Transformation Name Extract text or pattern
Parameter: Column to extract from URL
Parameter: Option Custom text or pattern
Parameter: Text to extract /[!^\/].*$/


Delete the path_URL column and rename the path_URL1 column to the deleted one. Then:

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula URLPARAMS(URL)
Parameter: New column name 'urlParams'

If you wanted to just see the values for the q1 parameter, you could add the following:

Transformation Name New formula
Parameter: Formula type Single row formula
Parameter: Formula FILTEROBJECT(urlParams,'q1')
Parameter: New column name 'urlParam_q1'

Results:

For display purposes, the results table has been broken down into separate sets of columns.

Column set 1:

URLhost_URLpath_URL
www.example.comwww.example.com 
example.com/supportexample.com/support
http://www.example.com/products/www.example.com/products/
http://1.2.3.41.2.3.4 
https://www.example.com/free-downloadwww.example.com/free-download
https://www.example.com/about-us/careerswww.example.com/about-us/careers
www.app.example.comwww.app.example.com 
www.some.app.example.comwww.some.app.example.com 
some.app.example.comsome.app.example.com 
some.example.comsome.example.com 
example.comexample.com 
http://www.example.com?q1=broken%20recordwww.example.com 
http://www.example.com?query=khakis&app=pantswww.example.com 
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wristwww.example.com 

Column set 2:

URLprotocol_URLsubdomain_URLdomain_URLsuffix_URL
www.example.com wwwexamplecom
example.com/support  examplecom
http://www.example.com/products/http://wwwexamplecom
http://1.2.3.4http://   
https://www.example.com/free-downloadhttps://wwwexamplecom
https://www.example.com/about-us/careershttps://wwwexamplecom
www.app.example.com www.appexamplecom
www.some.app.example.com www.some.appexamplecom
some.app.example.com some.appexamplecom
some.example.com someexamplecom
example.com  examplecom
http://www.example.com?q1=broken%20recordhttp://wwwexamplecom
http://www.example.com?query=khakis&app=pantshttp://wwwexamplecom
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wristhttp://wwwexamplecom

Column set 3:

URLurlParamsurlParam_q1
www.example.com  
example.com/support  
http://www.example.com/products/  
http://1.2.3.4  
https://www.example.com/free-download  
https://www.example.com/about-us/careers  
www.app.example.com  
www.some.app.example.com  
some.app.example.com  
some.example.com  
example.com  
http://www.example.com?q1=broken%20record{"q1":"broken record"}{"q1":"broken record"}
http://www.example.com?query=khakis&app=pants{"query":"khakis","app":"pants"} 
http://www.example.com?q1=broken%20record&q2=broken%20tape&q3=broken%20wrist{"q1":"broken record", "q2":"broken tape",
"q3":"broken wrist"}
{"q1":"broken record"}


This page has no comments.