Introduction
This article covers how to use leopards with different file types.
CSV
DictReader
from csv
module can be used to read csv files as dictionaries as shown below.
<span>import</span> <span>csv</span><span>from</span> <span>leopards</span> <span>import</span> <span>Q</span><span>data</span> <span>=</span> <span>csv</span><span>.</span><span>DictReader</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.csv</span><span>"</span><span>))</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>csv</span> <span>from</span> <span>leopards</span> <span>import</span> <span>Q</span> <span>data</span> <span>=</span> <span>csv</span><span>.</span><span>DictReader</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.csv</span><span>"</span><span>))</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import csv from leopards import Q data = csv.DictReader(open("data.csv")) res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
TSV
DictReader
from csv
module can be used to read tsv files as dictionaries as shown below.
<span>import</span> <span>csv</span><span>from</span> <span>leopards</span> <span>import</span> <span>Q</span><span>data</span> <span>=</span> <span>csv</span><span>.</span><span>DictReader</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.csv</span><span>"</span><span>),</span> <span>delimiter</span><span>=</span><span>"</span><span>\t</span><span>"</span><span>)</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>csv</span> <span>from</span> <span>leopards</span> <span>import</span> <span>Q</span> <span>data</span> <span>=</span> <span>csv</span><span>.</span><span>DictReader</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.csv</span><span>"</span><span>),</span> <span>delimiter</span><span>=</span><span>"</span><span>\t</span><span>"</span><span>)</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import csv from leopards import Q data = csv.DictReader(open("data.csv"), delimiter="\t") res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
JSON
json.load
can be used to read json files as dictionaries as shown below.
<span>import</span> <span>json</span><span>from</span> <span>leopards</span> <span>import</span> <span>Q</span><span>data</span> <span>=</span> <span>json</span><span>.</span><span>load</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.json</span><span>"</span><span>))</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>json</span> <span>from</span> <span>leopards</span> <span>import</span> <span>Q</span> <span>data</span> <span>=</span> <span>json</span><span>.</span><span>load</span><span>(</span><span>open</span><span>(</span><span>"</span><span>data.json</span><span>"</span><span>))</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import json from leopards import Q data = json.load(open("data.json")) res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
XLS
xlrd
library can be used to read xls files as dictionaries as shown below.
<span>import</span> <span>xlrd</span><span>from</span> <span>leopards</span> <span>import</span> <span>Q</span><span>wb</span> <span>=</span> <span>xlrd</span><span>.</span><span>open_workbook</span><span>(</span><span>"</span><span>data.xls</span><span>"</span><span>)</span><span>sh</span> <span>=</span> <span>wb</span><span>.</span><span>sheets</span><span>()[</span><span>0</span><span>]</span><span>keys</span> <span>=</span> <span>sh</span><span>.</span><span>row_values</span><span>(</span><span>0</span><span>)</span><span>data</span> <span>=</span><span>[]</span><span>for</span> <span>n</span> <span>in</span> <span>range</span><span>(</span><span>1</span><span>,</span> <span>sh</span><span>.</span><span>nrows</span><span>):</span><span>data</span><span>.</span><span>append</span><span>({</span><span>key</span><span>:</span> <span>sh</span><span>.</span><span>row_values</span><span>(</span><span>n</span><span>)[</span><span>n2</span><span>]</span> <span>for</span> <span>n2</span><span>,</span> <span>key</span> <span>in</span> <span>enumerate</span><span>(</span><span>keys</span><span>)})</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>xlrd</span> <span>from</span> <span>leopards</span> <span>import</span> <span>Q</span> <span>wb</span> <span>=</span> <span>xlrd</span><span>.</span><span>open_workbook</span><span>(</span><span>"</span><span>data.xls</span><span>"</span><span>)</span> <span>sh</span> <span>=</span> <span>wb</span><span>.</span><span>sheets</span><span>()[</span><span>0</span><span>]</span> <span>keys</span> <span>=</span> <span>sh</span><span>.</span><span>row_values</span><span>(</span><span>0</span><span>)</span> <span>data</span> <span>=</span><span>[]</span> <span>for</span> <span>n</span> <span>in</span> <span>range</span><span>(</span><span>1</span><span>,</span> <span>sh</span><span>.</span><span>nrows</span><span>):</span> <span>data</span><span>.</span><span>append</span><span>({</span><span>key</span><span>:</span> <span>sh</span><span>.</span><span>row_values</span><span>(</span><span>n</span><span>)[</span><span>n2</span><span>]</span> <span>for</span> <span>n2</span><span>,</span> <span>key</span> <span>in</span> <span>enumerate</span><span>(</span><span>keys</span><span>)})</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import xlrd from leopards import Q wb = xlrd.open_workbook("data.xls") sh = wb.sheets()[0] keys = sh.row_values(0) data =[] for n in range(1, sh.nrows): data.append({key: sh.row_values(n)[n2] for n2, key in enumerate(keys)}) res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
ClickHouse
clickhouse_connect
library can be used to read data from ClickHouse as dictionaries as shown below.
<span>import</span> <span>clickhouse_connect</span><span>client</span> <span>=</span> <span>clickhouse_connect</span><span>.</span><span>get_client</span><span>(</span> <span>host</span><span>=</span><span>'</span><span>localhost</span><span>'</span><span>,</span> <span>username</span><span>=</span><span>'</span><span>default</span><span>'</span><span>,</span><span>password</span><span>=</span><span>''</span> <span>)</span><span>rows</span> <span>=</span> <span>client</span><span>.</span><span>execute</span><span>(</span><span>"</span><span>SELECT * FROM TABLE</span><span>"</span><span>)</span><span>data</span> <span>=</span> <span>rows</span><span>.</span><span>named_results</span><span>()</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>clickhouse_connect</span> <span>client</span> <span>=</span> <span>clickhouse_connect</span><span>.</span><span>get_client</span><span>(</span> <span>host</span><span>=</span><span>'</span><span>localhost</span><span>'</span><span>,</span> <span>username</span><span>=</span><span>'</span><span>default</span><span>'</span><span>,</span><span>password</span><span>=</span><span>''</span> <span>)</span> <span>rows</span> <span>=</span> <span>client</span><span>.</span><span>execute</span><span>(</span><span>"</span><span>SELECT * FROM TABLE</span><span>"</span><span>)</span> <span>data</span> <span>=</span> <span>rows</span><span>.</span><span>named_results</span><span>()</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import clickhouse_connect client = clickhouse_connect.get_client( host='localhost', username='default',password='' ) rows = client.execute("SELECT * FROM TABLE") data = rows.named_results() res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
MySQL
mysql-client
library can be used to read data from MySQL as dictionaries as shown below.
<span>import</span> <span>MySQLdb</span><span>from</span> <span>MySQLdb.cursors</span> <span>import</span> <span>DictCursor</span><span>from</span> <span>leopards</span> <span>import</span> <span>Q</span><span>db</span><span>=</span><span>MySQLdb</span><span>.</span><span>connect</span><span>(</span><span>user</span><span>=</span><span>'</span><span>root</span><span>'</span><span>,</span><span>password</span><span>=</span><span>'</span><span>PASS</span><span>'</span><span>,</span> <span>database</span><span>=</span><span>"</span><span>db</span><span>"</span><span>,</span> <span>cursorclass</span><span>=</span><span>DictCursor</span><span>)</span><span>cursor</span> <span>=</span> <span>db</span><span>.</span><span>cursor</span><span>()</span><span>cursor</span><span>.</span><span>execute</span><span>(</span><span>"</span><span>SELECT * FROM TABLE</span><span>"</span><span>)</span><span>data</span> <span>=</span> <span>cursor</span><span>.</span><span>fetchall</span><span>()</span><span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span><span>import</span> <span>MySQLdb</span> <span>from</span> <span>MySQLdb.cursors</span> <span>import</span> <span>DictCursor</span> <span>from</span> <span>leopards</span> <span>import</span> <span>Q</span> <span>db</span><span>=</span><span>MySQLdb</span><span>.</span><span>connect</span><span>(</span><span>user</span><span>=</span><span>'</span><span>root</span><span>'</span><span>,</span><span>password</span><span>=</span><span>'</span><span>PASS</span><span>'</span><span>,</span> <span>database</span><span>=</span><span>"</span><span>db</span><span>"</span><span>,</span> <span>cursorclass</span><span>=</span><span>DictCursor</span><span>)</span> <span>cursor</span> <span>=</span> <span>db</span><span>.</span><span>cursor</span><span>()</span> <span>cursor</span><span>.</span><span>execute</span><span>(</span><span>"</span><span>SELECT * FROM TABLE</span><span>"</span><span>)</span> <span>data</span> <span>=</span> <span>cursor</span><span>.</span><span>fetchall</span><span>()</span> <span>res</span> <span>=</span> <span>Q</span><span>(</span><span>data</span><span>,</span> <span>{</span><span>"</span><span>age__gt</span><span>"</span><span>:</span> <span>15</span><span>})</span>import MySQLdb from MySQLdb.cursors import DictCursor from leopards import Q db=MySQLdb.connect(user='root',password='PASS', database="db", cursorclass=DictCursor) cursor = db.cursor() cursor.execute("SELECT * FROM TABLE") data = cursor.fetchall() res = Q(data, {"age__gt": 15})
Enter fullscreen mode Exit fullscreen mode
暂无评论内容