pip install tablevalue
from tablevalue import TableValue| Method | Arguments | Description |
|---|---|---|
| begin_transaction | Setting the transaction start sign | |
| finish_transaction | conn.commit() | |
| cancel_transaction | conn.rollback() | |
| transaction_is_active | Indication of transaction activity | |
| new_row | return Row object | |
| new_bulk_insert | values_to_bulk | fast insert to database |
| get_data | filter_query:dict, sort: str, limit = 100000000 | self.cur.fetchall() |
| get_rows | filter_query:dict, sort: str, limit = 100000000 | return list of Row objects, Easier to interact with |
| get_grouped_data | columns_to_group: str, columns_to_sum: str, filter_query:dict, sort: str, number_of_rows = 100000000, row_mode=True | return grouped data |
| count | the same as "select count(*) from table" | |
| update | filter_query:dict, values_query:dict | update data |
| clear | delete all data from table | |
| delete | filter_query: dict | deleting selection data |
parsed_csv = (('oleg', 'Asbest', 2, 1),
('ivan', 'Asbest', 1, 2),
('nastya', 'Krasnodar', 0, 2),
('Max', 'Asbest', 1, 2),
('Even', 'Krasnodar', 1, 2),
('Rob', 'Krasnodar', 1, 2),
('Mob', 'Ekaterinburg', 1, 2),
('Dick', 'Ekaterinburg', 1, 2),
('Cheize', 'Krasnodar', 1, 2),
('Longard', 'Ekaterinburg', 1, 2),
)
table = TableValue()
table.columns.add('Name')
table.columns.add('country')
table.columns.add('count_of_pets', table.Types.INTEGER)
table.columns.add('count_of_children', table.Types.INTEGER)
for data in parsed_csv:
new_row = table.new_row()
new_row.Name = data[0]
new_row.country = data[1]
new_row.count_of_pets = data[2]
new_row.count_of_children = data[3]
new_row.apply_add()
grouped_county_data = table.get_grouped_data('country', 'count_of_pets, count_of_children')
for country_data in grouped_county_data:
message_county = f'{country_data.country} : pets: {country_data.count_of_pets}, childrens: {country_data.count_of_children}'
print(message_county)Asbest : pets: 4, childrens: 5
Ekaterinburg : pets: 3, childrens: 6
Krasnodar : pets: 3, childrens: 8print(table.count())10asbest = table.get_rows(filter_query={'country': 'Asbest'})
for data in asbest:
print(f'{data.name}: childrens: {data.count_of_children}. Pets: {data.count_of_pets}')oleg: childrens: 1. Pets: 2
ivan: childrens: 2. Pets: 1
Max: childrens: 2. Pets: 1table.update(filter_query={'name': 'oleg'}, values_query={'name' : 'OLEG'})
data_oleg = table.get_rows(filter_query={'name': 'OLEG'})
data = data_oleg[0]
print(f'{data.name}: childrens: {data.count_of_children}. Pets: {data.count_of_pets}')OLEG: childrens: 1. Pets: 2
table.delete(filter_query={'name':'OLEG'})
data_oleg = table.get_rows(filter_query={'name': 'OLEG'})
data = data_oleg[0] data = data_oleg[0]
IndexError: list index out of range
When there is an active transaction, commit is not performed automatically. The following construction interferes
if not self.transaction_is_active():
self.conn.commit()