2013-06-26 3 views
-2

Я хотел бы знать, как читать файл csv с помощью sql. Я хотел бы использовать группу и присоединяться к другим CSV-файлам вместе. Как мне это сделать в python.Как читать csv используя sql

пример:

select * from csvfile.csv where name LIKE 'name%' 
+2

sql? питон? Что он? Какова ваша конкретная проблема? – rantanplan

+0

Я хотел бы использовать sql для запроса файла csv. выберите * from csvfile.csv, где name LIKE 'name%' – Luke101

+0

SQL используется для запросов баз данных, а не текстовых файлов. Сначала создайте свою схему/таблицы в базе данных по вашему выбору, а затем загрузите с помощью python значения csv внутри ваших таблиц db. Наконец, вы делаете свои запросы с помощью SQL. – rantanplan

ответ

2

код SQL выполняется с помощью движка базы данных. Python напрямую не понимает и не выполняет инструкции SQL.

Хотя некоторые базы данных SQL хранят свои данные в csv-подобных файлах, почти все они используют более сложные файловые структуры. Поэтому вам необходимо импортировать каждый файл csv в отдельную таблицу в ядре базы данных SQL. Затем вы можете использовать Python для подключения к движку SQL и отправить его SQL-операторам (например, SELECT). Двигатель выполнит SQL, извлечет результаты из своих файлов данных и вернет их в вашу программу Python.

Самый распространенный легкий двигатель - SQLite.

-1

Вы можете легко запросить базу данных SQL с помощью PHP-скрипта. PHP работает с серверами, поэтому весь ваш код должен быть на веб-сервере (тот, у которого есть база данных). Вы могли бы сделать функцию для подключения к базе данных, как это:

$con= mysql_connect($hostname, $username, $password) 
    or die("An error has occured"); 

Затем используйте $con для выполнения других задач, таких как пробегаем по данным и создания таблицы, или даже добавление строк и столбцов в существующую таблицу.

EDIT: Я заметил, что вы сказали. CSV-файл. Вы можете загрузить CSV-файл в базу данных SQL и создать из него таблицу. Если вы используете службу панели управления, такие как PhpMyAdmin, вы можете просто импортировать CSV файл в вашу базу данных, как это:

PHPMyAdmin screenshot

Если вы ищете свободный веб-хостинг, чтобы проверить ваш SQL и PHP файлы на, выезд x10 хостинг.

+0

Этот вопрос касается Python, а не PHP. В вопросе о том, что веб-сервер каким-либо образом задействован, нет никаких указаний. У пользователя нет базы данных, а скорее csv-файлов. Кроме того, я уверен, что PHP предлагает параметризованные запросы, поэтому, если это * был вопрос о запросе MySQL с веб-сервера, написанного на PHP, то часть SQL-инъекции неверна (при условии, что вы закодированы тщательно). Кроме того, нет необходимости в том, чтобы сервер базы данных находился с веб-сервером. –

1

littletable - это модуль Python, который я написал для работы со списками объектов, как если бы они были таблицами базы данных, но с использованием реляционного API, а не для операторов SQL select. Таблицы в Littletable могут легко читать и писать из CSV-файлов. Одна из особенностей, которые мне особенно нравятся, состоит в том, что каждый запрос из таблицы Littletable возвращает новую таблицу, поэтому вам не нужно изучать различные интерфейсы для Table и RecordSet, например. Таблицы повторяются как списки, но их также можно выбирать, индексировать, присоединять и поворачивать - см. the opening page of the docs.

# print a particular customer name 
# (unique indexes will return a single item; non-unique 
# indexes will return a Table of all matching items) 
print customers.by.id["0030"].name 
print len(customers.by.zipcode["12345"]) 

# print all items sold by the pound 
for item in catalog.query(unitofmeas="LB"): 
    print item.sku, item.descr 

# print all items that cost more than 10 
for item in catalog.where(lambda o : o.unitprice>10): 
    print item.sku, item.descr, item.unitprice 

# join tables to create queryable wishlists collection 
wishlists = customers.join_on("id") + wishitems.join_on("custid") + catalog.join_on("sku") 

# print all wishlist items with price > 10 
bigticketitems = wishlists().where(lambda ob : ob.unitprice > 10) 
for item in bigticketitems: 
    print item 

Столбцы таблиц выводятся из атрибутов объектов, добавленных в таблицу. Также хорошо известны именованные элементы, а также особый, по большей части, неизменный тип, называемый DataObject, также определенный в littletable.

Littletable немного привыкает, но похоже, что вы уже думаете по подобной линии.