Icon

kn_​forum_​67121_​python_​lists_​loop

Python - KNIME string as a list in Python

Python - KNIME string as a list in Python

import knime.scripting.io as knioimport numpy as npimport pandas as pdimport requests# Get urls and search_terms from KNIME flow variablesurls = knio.flow_variables['url']search_terms = knio.flow_variables['keywords']# Strip leading or trailing spaces and create listsurls = [s.strip() for s in urls.split(",")]search_terms = [s.strip() for s in search_terms.split(",")]counts = {}for url in urls: try: response = requests.get(url) content = response.text url_counts = {} for term in search_terms: count = content.count(term) url_counts[term] = count counts[url] = url_counts except requests.exceptions.RequestException as e: print(f"An error occurred when trying to access {url}: {e}")# Initiate an empty list to hold datadata = []for url, url_counts in counts.items(): for term, count in url_counts.items(): # Add each row as a dictionary to the list data.append({"URL": url, "Search Term": term, "Count": count})# Convert list of dictionaries to DataFramedf = pd.DataFrame(data)knio.output_tables[0] = knio.Table.from_pandas(df) https://forum.knime.com/t/two-flow-variables-in-python-source-node-how-to/67121/2?u=mlauber71 keywords, countSTARTNode 162Node 163Node 164keywordsas unique concatenateMISSING $keywords$ => FALSETRUE => TRUEMISSING $url$ => FALSETRUE => TRUEresults.table Python Source(legacy) Table Row ToVariable Loop Start Table Creator Loop End Pivoting Python Script GroupBy Rule-basedRow Filter Rule-basedRow Filter GroupBy Table Rowto Variable Merge Variables Table Rowto Variable Table Writer import knime.scripting.io as knioimport numpy as npimport pandas as pdimport requests# Get urls and search_terms from KNIME flow variablesurls = knio.flow_variables['url']search_terms = knio.flow_variables['keywords']# Strip leading or trailing spaces and create listsurls = [s.strip() for s in urls.split(",")]search_terms = [s.strip() for s in search_terms.split(",")]counts = {}for url in urls: try: response = requests.get(url) content = response.text url_counts = {} for term in search_terms: count = content.count(term) url_counts[term] = count counts[url] = url_counts except requests.exceptions.RequestException as e: print(f"An error occurred when trying to access {url}: {e}")# Initiate an empty list to hold datadata = []for url, url_counts in counts.items(): for term, count in url_counts.items(): # Add each row as a dictionary to the list data.append({"URL": url, "Search Term": term, "Count": count})# Convert list of dictionaries to DataFramedf = pd.DataFrame(data)knio.output_tables[0] = knio.Table.from_pandas(df) https://forum.knime.com/t/two-flow-variables-in-python-source-node-how-to/67121/2?u=mlauber71 keywords, countSTARTNode 162Node 163Node 164keywordsas unique concatenateMISSING $keywords$ => FALSETRUE => TRUEMISSING $url$ => FALSETRUE => TRUEresults.tablePython Source(legacy) Table Row ToVariable Loop Start Table Creator Loop End Pivoting Python Script GroupBy Rule-basedRow Filter Rule-basedRow Filter GroupBy Table Rowto Variable Merge Variables Table Rowto Variable Table Writer

Nodes

Extensions

Links