Leopards with different file types

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

原文链接:Leopards with different file types

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
things never change, we change.
世界并没有变,改变的是我们
评论 抢沙发

请登录后发表评论

    暂无评论内容