小编Moh*_*hit的帖子

从python运行c ++代码

我想执行一个代码helloword.cpp,它从控制台接受一些参数解析那些参数,然后在控制台中打印"hello world".

现在,我想从python脚本parsearguments.py中解析这些参数

例如:

def parse_arguments:
  ...# some code
  return arguments
Run Code Online (Sandbox Code Playgroud)

现在,我如何在python和c ++之间进行通信.我一直在阅读并看到cython,boost python是选项,但我很难找到正确的简单hello世界示例.

任何建议将不胜感激.谢谢

c++ python ctypes cython boost-python

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

pythonic方式创建3d词典

我想创建一个可以访问的字典:

d[id_1][id_2][id_3] = amount
Run Code Online (Sandbox Code Playgroud)

截至目前,我有一个巨大的丑陋功能:

 def parse_dict(id1,id2,id3,principal, data_dict):
        if data_dict.has_key(id1):
           values = data_dict[id1]
           if values.has_key[id2]
              ..
        else:
            inner_inner_dict = {}
             # and so on
Run Code Online (Sandbox Code Playgroud)

什么是pythonic方法呢?

请注意,我输入了本金..但我想要的是金额..所以,如果所有三个键都在那里..添加本金到以前的金额!

谢谢

python

7
推荐指数
4
解决办法
6966
查看次数

使用猪或hadoop找到意思

我有一个巨大的文本文件

数据保存在目录data/data1.txt,data2.txt等中

merchant_id, user_id, amount
1234, 9123, 299.2
1233, 9199, 203.2
 1234, 0124, 230
 and so on..
Run Code Online (Sandbox Code Playgroud)

我想做的是每个商家,找到平均数量..

所以基本上我最终想要将输出保存在文件中.就像是

 merchant_id, average_amount
  1234, avg_amt_1234 a
  and so on.
Run Code Online (Sandbox Code Playgroud)

我如何计算标准偏差?

很抱歉提出这样一个基本问题.:( 任何帮助,将不胜感激. :)

hadoop apache-pig

7
推荐指数
1
解决办法
6845
查看次数

在python中解析bson字符串?

我在文件中有一个bson格式的字符串

我想读取该文件并获取编码的json.

我在这里看一下这个例子:

>>> from bson import BSON
>>> bson_string = BSON.encode({"hello": "world"})
>>> bson_string
'\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00'
>>> bson_string.decode()
{u'hello': u'world'}
Run Code Online (Sandbox Code Playgroud)

来自http://docs.mongodb.org/meta-driver/latest/legacy/bson/

但我所说的是:

string = '\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00'
Run Code Online (Sandbox Code Playgroud)

现在我要解析这个json?我该怎么做呢?谢谢


你能尝试解析这个bson格式的字符串:

s = """'\x93\x01\x00\x00\x02_id\x00\x1a\x00\x00\x00auromotiveengineering.com\x00\x04name_servers\x00_\x00\x00\x00\x020\x00\x17\x00\x00\x00ns-2.activatedhost.com\x00\x021\x00\x17\x00\x00\x00ns-1.activatedhost.com\x00\x022\x00\x17\x00\x00\x00ns-3.activatedhost.com\x00\x00\nreputation\x00\x04categories\x00\x05\x00\x00\x00\x00\x03host_act\x00\xd7\x00\x00\x00\x03bnMtMi5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMy5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x03bnMtMS5hY3RpdmF0ZWRob3N0LmNvbQ==\x00$\x00\x00\x00\x10seen_first\x00\x00,\xe7F\x10seen_last\x00\x80 \xebF\x00\x00\x00'"""
Run Code Online (Sandbox Code Playgroud)

所以这就是我所做的:给一个jsonstring

   s = """'{ "_id" : "auromotiveengineering.com", "categories" : [ ], "host_act" : { "bnMtMi5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 }, "bnMtMS5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 }, "bnMtMy5hY3RpdmF0ZWRob3N0LmNvbQ==" : { "seen_first" : 1189555200, "seen_last" : 1189814400 } }, "name_servers" …
Run Code Online (Sandbox Code Playgroud)

python json mongodb bson

7
推荐指数
1
解决办法
9193
查看次数

如何在python中发布post请求

这是curl命令:

curl -H "X-API-TOKEN: <API-TOKEN>" 'http://foo.com/foo/bar' --data # 
Run Code Online (Sandbox Code Playgroud)

让我解释一下数据的含义

POST /foo/bar
Input (request JSON body)

Name    Type    
title   string  
body    string
Run Code Online (Sandbox Code Playgroud)

所以,基于此...我想:

curl -H"X-API-TOKEN:"' http://foo.com/foo/bar'--data '{"title":"foobar","body":"这个身体同时具有"双重"和'单'引用"}'

不幸的是,我也无法解决这个问题(比如来自cli的curl)虽然我想用python发送这个请求.我该怎么做呢?

python curl

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

如何使用numpy将矢量填充和/或截断到指定的长度?

我有几个列表:

a = [1,2,3]
b = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

它们的长度可变.

我想返回一个长度为5的向量,这样如果输入列表长度<5,那么它将在右边用零填充,如果它> 5,那么它将在第5个元素处被截断.

例如,输入a将返回np.array([1,2,3,0,0]),输入b将返回np.array([1,2,3,4,5]).

我觉得我应该可以使用np.pad,但我似乎无法遵循文档.

python numpy

7
推荐指数
1
解决办法
1145
查看次数

python中字典的多键值查找

因此很多时候我使用字典进行键/值查找.但是如果我需要查找多个东西,我通常会有一个for循环.例如:

def check_cond(key):
    return True if key in some_dict else False

some_task = [val for val in vals if check_cond(val)]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来一次搜索所有的val而不是这个for循环?

喜欢 some_task = fetch_all_conds(vals)

不确定,如果我的问题有意义吗?

python

7
推荐指数
1
解决办法
501
查看次数

解析python中的日期字符串(将字符串转换为日期)

我有一个字符串形式的日期时间字符串:

2011-10-23T08:00:00-07:00
Run Code Online (Sandbox Code Playgroud)

我如何解析此字符串作为日期时间对象.

我做了以下阅读文档:

date = datetime.strptime(data[4],"%Y-%m-%d%Z")
Run Code Online (Sandbox Code Playgroud)

我得到了错误

  ValueError: time data '2011-10-23T08:00:00-07:00' does not match format '%Y-%m-%d%Z'
Run Code Online (Sandbox Code Playgroud)

这很清楚.

但我不知道如何阅读这种格式.

有什么建议.谢谢

编辑:另外,我必须补充,我关心的只是日期部分

python datetime-parsing

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

写入hadoop中的多个文件夹?

我试图将我的输出从reducer分离到不同的文件夹..

My dirver has the following code:
 FileOutputFormat.setOutputPath(job, new Path(output));
            //MultipleOutputs.addNamedOutput(job, namedOutput, outputFormatClass, keyClass, valueClass)
            //MultipleOutputs.addNamedOutput(job, namedOutput, outputFormatClass, keyClass, valueClass)
            MultipleOutputs.addNamedOutput(job, "foo", TextOutputFormat.class, NullWritable.class, Text.class);
            MultipleOutputs.addNamedOutput(job, "bar", TextOutputFormat.class, Text.class,NullWritable.class);
            MultipleOutputs.addNamedOutput(job, "foobar", TextOutputFormat.class, Text.class, NullWritable.class);

And then my reducer has the following code:
mos.write("foo",NullWritable.get(),new Text(jsn.toString()));
mos.write("bar", key,NullWritable.get());
mos.write("foobar", key,NullWritable.get());

But in the output, I see:

output/foo-r-0001
output/foo-r-0002
output/foobar-r-0001
output/bar-r-0001


But what I am trying is :

output/foo/part-r-0001
output/foo/part-r-0002
output/bar/part-r-0001
Run Code Online (Sandbox Code Playgroud)

输出/ foobar的/部分-R-0001

我该怎么做呢?谢谢

hadoop

6
推荐指数
1
解决办法
1298
查看次数

如何使用多个参数在python中加入url

我有一个简单的疑问..我正在尝试使用urljoin加入一个字符串的三个部分..

   host = "http://foo.com:port"
   ver = "/v1"
   exten = "/path"
Run Code Online (Sandbox Code Playgroud)

而不是做主机+ ver + exten,我想使用urljoin生成url但urljoin正在给 http://foo.com:poort/v1(如果我尝试urljoin(host,ver,exten))

python

6
推荐指数
1
解决办法
6204
查看次数