标签: csv

为什么csvwriter.writerow()在每个字符后面加一个逗号?

此代码打开URL并/names在末尾附加并打开页面并将字符串打印到test1.csv:

import urllib2
import re
import csv

url = ("http://www.example.com")
bios = [u'/name1', u'/name2', u'/name3']
csvwriter = csv.writer(open("/test1.csv", "a"))

for l in bios:
    OpenThisLink = url + l
    response = urllib2.urlopen(OpenThisLink)
    html = response.read()
    item = re.search('(JD)(.*?)(\d+)', html)
    if item:
        JD = item.group()
        csvwriter.writerow(JD)
    else:
        NoJD = "NoJD"
        csvwriter.writerow(NoJD)
Run Code Online (Sandbox Code Playgroud)

但我得到了这个结果:

J,D,",", ,C,o,l,u,m,b,i,a, ,L,a,w, ,S,c,h,o,o,l,....

如果我将字符串更改为("JD","哥伦比亚大学法学院"......),那么我得到了

JD, Columbia Law School...)

我在文档中找不到如何指定分隔符.

如果我尝试使用,delimenter我会收到此错误:

TypeError: 'delimeter' is an invalid keyword argument for this function
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

python csv

84
推荐指数
2
解决办法
7万
查看次数

如何将csv文件导入MySQL工作台?

我有一个CSV文件.它包含140万行数据,因此我无法在Excel中打开该csv文件,因为它的限制大约是100万行.

因此,我想在MySQL工作台中导入此文件.这个csv文件包含像

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"
Run Code Online (Sandbox Code Playgroud)

我试图在MySQL工作台中创建一个名为"dummy"的表,其中包含列

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 
Run Code Online (Sandbox Code Playgroud)

CSV文件已命名model.csv.我在workbench中的代码是这样的:

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';
Run Code Online (Sandbox Code Playgroud)

但我收到的错误就像 model.CSV file not found

mysql csv import

83
推荐指数
4
解决办法
22万
查看次数

使用shell脚本从sqlite导出到csv

我正在制作一个shell脚本来将sqlite查询导出到csv文件,就像这样:

 #!/bin/bash
./bin/sqlite3 ./sys/xserve_sqlite.db ".headers on"
./bin/sqlite3 ./sys/xserve_sqlite.db ".mode csv"
./bin/sqlite3 ./sys/xserve_sqlite.db ".output out.csv"
./bin/sqlite3 ./sys/xserve_sqlite.db "select * from eS1100_sensor_results;"
./bin/sqlite3 ./sys/xserve_sqlite.db ".exit"
Run Code Online (Sandbox Code Playgroud)

执行脚本时,输出在屏幕上显示,而不是保存到"out.csv".它正在使用命令行执行相同的方法,但我不知道为什么shell脚本无法将数据导出到文件.

我究竟做错了什么?

csv sqlite shell

82
推荐指数
3
解决办法
9万
查看次数

将多行字符串转换为单个逗号分隔

假设我有以下字符串:

something1:    +12.0   (some unnecessary trailing data (this must go))
something2:    +15.5   (some more unnecessary trailing data)
something4:    +9.0   (some other unnecessary data)
something1:    +13.5  (blah blah blah)
Run Code Online (Sandbox Code Playgroud)

我该如何简单地把它变成

+12.0,+15.5,+9.0,+13.5
Run Code Online (Sandbox Code Playgroud)

在bash?

csv string bash shell

82
推荐指数
9
解决办法
11万
查看次数

使用"sort"命令按列优先级对CSV文件进行排序

我有一个csv文件,我想按列优先级排序,比如"order by".例如:

3;1;2
1;3;2
1;2;3
2;3;1
2;1;3
3;2;1
Run Code Online (Sandbox Code Playgroud)

如果这种情况是"选择"的结果,"order by"将如下:order by column2,column1,column3 - 结果将是:

2;1;3
3;1;2
1;2;3
3;2;1
1;3;2
2;3;1
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Unix上使用"sort"命令获得相同的结果.

unix csv sorting sql-order-by

82
推荐指数
3
解决办法
9万
查看次数

方法为pandas数据帧读取前几行

有没有内置的方法可以在不知道行的长度的情况下read_csv只读取n文件的第一行?我有一个大文件,需要很长时间才能阅读,偶尔只想使用第一行,比方说20行来获取它的样本(并且不想加载完整的东西并占据它的头部).

如果我知道我可以做的事情的总行数,footer_lines = total_lines - n并将其传递给skipfooter关键字arg.我目前的解决方案是手动抓取npython和StringIO 的第一行到pandas:

import pandas as pd
from StringIO import StringIO

n = 20
with open('big_file.csv', 'r') as f:
    head = ''.join(f.readlines(n))

df = pd.read_csv(StringIO(head))
Run Code Online (Sandbox Code Playgroud)

它并没有那么糟糕,但有一种更简洁,"pandasic"(?)方式用关键字或其他方式做到这一点?

python csv dataframe pandas

82
推荐指数
2
解决办法
9万
查看次数

pandas read_csv和使用usecols过滤列

我有一个csv文件,pandas.read_csv当我使用过滤列usecols并使用多个索引时,它没有正确使用.

import pandas as pd
csv = r"""dummy,date,loc,x
   bar,20090101,a,1
   bar,20090102,a,3
   bar,20090103,a,5
   bar,20090101,b,1
   bar,20090102,b,3
   bar,20090103,b,5"""

f = open('foo.csv', 'w')
f.write(csv)
f.close()

df1 = pd.read_csv('foo.csv',
        header=0,
        names=["dummy", "date", "loc", "x"], 
        index_col=["date", "loc"], 
        usecols=["dummy", "date", "loc", "x"],
        parse_dates=["date"])
print df1

# Ignore the dummy columns
df2 = pd.read_csv('foo.csv', 
        index_col=["date", "loc"], 
        usecols=["date", "loc", "x"], # <----------- Changed
        parse_dates=["date"],
        header=0,
        names=["dummy", "date", "loc", "x"])
print df2
Run Code Online (Sandbox Code Playgroud)

我希望df1和df2应该是相同的,除了丢失的虚拟列,但列标记错误.此日期也被解析为日期.

In [118]: %run test.py
               dummy  x
date       loc
2009-01-01 a     bar  1
2009-01-02 a …
Run Code Online (Sandbox Code Playgroud)

python csv csv-import pandas

82
推荐指数
3
解决办法
18万
查看次数

如何将CSV文件转换为多线JSON?

这是我的代码,非常简单的东西......

import csv
import json

csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')

fieldnames = ("FirstName","LastName","IDNumber","Message")
reader = csv.DictReader( csvfile, fieldnames)
out = json.dumps( [ row for row in reader ] )
jsonfile.write(out)
Run Code Online (Sandbox Code Playgroud)

声明一些字段名称,读取器使用CSV来读取文件,并使用字段名称将文件转储为JSON格式.这是问题......

CSV文件中的每条记录都在不同的行上.我希望JSON输出方式相同.问题是它将它全部放在一条巨大的长线上.

我尝试过使用类似的东西for line in csvfile:,然后在下面运行我的代码,reader = csv.DictReader( line, fieldnames)通过每行循环,但它在一行上完成整个文件,然后在另一行循环遍历整个文件...继续直到它用完行.

有任何纠正这个的建议吗?

编辑:澄清一下,目前我有:(第1行的每条记录)

[{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"},{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}]
Run Code Online (Sandbox Code Playgroud)

我在找什么:( 2行2条记录)

{"FirstName":"John","LastName":"Doe","IDNumber":"123","Message":"None"}
{"FirstName":"George","LastName":"Washington","IDNumber":"001","Message":"Something"}
Run Code Online (Sandbox Code Playgroud)

并非每个单独的字段缩进/在单独的行上,但每个字段都在其自己的行上.

一些样本输入.

"John","Doe","001","Message1"
"George","Washington","002","Message2"
Run Code Online (Sandbox Code Playgroud)

python csv json

82
推荐指数
6
解决办法
18万
查看次数

使用MVC,C#和jQuery导出到CSV

我正在尝试将列表导出为CSV文件.我完成了所有工作,我想写入文件到响应流.这没有任何作用.

这是我的代码:

从页面调用方法.

$('#btn_export').click(function () {
         $.post('NewsLetter/Export');
});
Run Code Online (Sandbox Code Playgroud)

控制器中的代码如下:

[HttpPost]
        public void Export()
        {
            try
            {
                var filter = Session[FilterSessionKey] != null ? Session[FilterSessionKey] as SubscriberFilter : new SubscriberFilter();

                var predicate = _subscriberService.BuildPredicate(filter);
                var compiledPredicate = predicate.Compile();
                var filterRecords = _subscriberService.GetSubscribersInGroup().Where(x => !x.IsDeleted).AsEnumerable().Where(compiledPredicate).GroupBy(s => s.Subscriber.EmailAddress).OrderBy(x => x.Key);

                ExportAsCSV(filterRecords);
            }
            catch (Exception exception)
            {
                Logger.WriteLog(LogLevel.Error, exception);
            }
        }

        private void ExportAsCSV(IEnumerable<IGrouping<String, SubscriberInGroup>> filterRecords)
        {
            var sw = new StringWriter();
            //write the header
            sw.WriteLine(String.Format("{0},{1},{2},{3}", CMSMessages.EmailAddress, CMSMessages.Gender, CMSMessages.FirstName, CMSMessages.LastName));

            //write every subscriber to …
Run Code Online (Sandbox Code Playgroud)

c# csv asp.net-mvc jquery

81
推荐指数
4
解决办法
10万
查看次数

如何在Ruby中创建新的CSV文件?

我有一个名为"A.csv"的CSV文件.我需要使用"A.csv"中的数据生成一个名为"B.csv"的新CSV文件.

我将使用"A.csv"中的列的子集,并且必须在"B.csv"中将一列的值更新为新值.然后我使用B.csv中的这些数据在数据库中进行验证.

  1. 如何创建新的CSV文件?
  2. 如何将所需列的数据从A.csv复制到"B.csv"?
  3. 如何为特定列附加值?

我能够读取CSV,获取数组或哈希.

ruby csv

81
推荐指数
2
解决办法
8万
查看次数

标签 统计

csv ×10

python ×4

pandas ×2

shell ×2

asp.net-mvc ×1

bash ×1

c# ×1

csv-import ×1

dataframe ×1

import ×1

jquery ×1

json ×1

mysql ×1

ruby ×1

sorting ×1

sql-order-by ×1

sqlite ×1

string ×1

unix ×1