小编csv*_*svb的帖子

使用标题列出python中的csv

我编写了一个脚本,它将下面的列表作为输出.

['red', '361', '0']
['blue', '1', '0']
['orange', '77', '0']
['cream', '660', '73']
['ivory', '159', '0']
Run Code Online (Sandbox Code Playgroud)

这个列表非常庞大,我想将输出内容写入带有标题的csv,如下所示.

color | total | fail
Run Code Online (Sandbox Code Playgroud)

这是我试图实现它的方式

with open('colour.csv', 'wb') as csvfile:
    header = ['color', 'total', 'fail']
    writer = csv.writer(csvfile, delimiter=',')
    writer.writerow(header)
    for row in output:
        writer.writerow(output)
Run Code Online (Sandbox Code Playgroud)

但我得到的输出并不像预期的那样.生成csv并将列表的最后一行打印三次到csv.我无法找到为什么不打印所有其他行或为什么最后一行打印三次?这是我得到的示例输出:

color | total | fail
ivory | 159 | 0
ivory | 159 | 0
ivory | 159 | 0
Run Code Online (Sandbox Code Playgroud)

这就是我期望输出的结果:

color | total | fail
red | 361 | 0 
blue | 1 | 0 …
Run Code Online (Sandbox Code Playgroud)

python csv export-to-csv

4
推荐指数
1
解决办法
5911
查看次数

从对象数组中删除重复项

我有一些带有一些键和值的javascript对象.下面是我的数组的样子.

[
{
"timestamp": 1474328370007,
"message": "hello"
},
{
"timestamp": 1474328302520,
"message": "how are you"
},
{
"timestamp": 1474328370007,
"message": "hello"
},
{
"timestamp": 1474328370007,
"message": "hello"
}
]
Run Code Online (Sandbox Code Playgroud)

我想删除对象中时间戳的重复发生,并且只保留该对象的单个发生.匹配应基于时间戳而不是消息发生.

预期产量是

[
{
 "timestamp": 1474328302520,
"message": "how are you"
},
{
"timestamp": 1474328370007,
"message": "hello"
}
]
Run Code Online (Sandbox Code Playgroud)

尝试这样的事情

var fs = require('fs');

fs.readFile("file.json", 'utf8', function (err,data) {
if (err) console.log(err);;
console.log(data);
// var result = [];
for (i=0; i<data.length;i++) {
  if(data[i].timestamp != data[i+1].timestamp)
    console.log('yes');
  }
});
Run Code Online (Sandbox Code Playgroud)

data[i+1]数组结束后我无法弄清楚该部分.有没有简单的方法可以进行上述重复数据删除?

先感谢您

javascript node.js

3
推荐指数
1
解决办法
7721
查看次数

在python中传递可选参数

我试图通过命令行参数传递参数来追加一个url.以下是我的尝试方式:

import argparse
parser = argparse.ArgumentParser(description='Arguments')
parser.add_argument('input', metavar='input', type=str)
parser.add_argument('output', metavar='text', type=str)
args = parser.parse_args()
url = 'https://example.com/?z=12&text='+args.output+'&loc{}'
print url
Run Code Online (Sandbox Code Playgroud)

当我执行

python url.py text.csv hello
Run Code Online (Sandbox Code Playgroud)

它将第二个传递的参数附加到url.我想知道如何使第二个参数可选,这样即使不提供第二个参数,我也希望通过连接到url来打印url.这是我期待的输出:

当两个论点都给出:

python url.py text.csv hello
Run Code Online (Sandbox Code Playgroud)

输出应该是

https://example.com/?z=12&text=hello&loc{}
Run Code Online (Sandbox Code Playgroud)

当给出单个参数时

python url.py text.csv
Run Code Online (Sandbox Code Playgroud)

输出应该是

https://example.com/?z=12&text=&loc{}
Run Code Online (Sandbox Code Playgroud)

python argparse

2
推荐指数
1
解决办法
2019
查看次数

标签 统计

python ×2

argparse ×1

csv ×1

export-to-csv ×1

javascript ×1

node.js ×1