小编And*_*ise的帖子

如何在python中模拟嵌套/多层返回对象

我目前正在努力寻找一种模拟多层/嵌套返回值的好方法.换句话说,我想返回一个魔术模拟,然后返回一个带有它自己的设置返回值的魔术模拟.我发现这相对麻烦,我正在寻找一个更优雅和可维护的解决方案.

我正在尝试有效地测试以下代码.URL返回需要进一步处理的json字符串:

import json
from urllib.request import url open

def load_json():
    # first return value
    response = urlopen("http://someurl.com/api/getjson")
    # in turn, contains two nested return values for read and decode
        response_dict = json.loads(response.read().decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

到目前为止,这就是我嘲笑的方式,这非常不优雅并且使维护变得复杂:

class MyTestCase(TestCase):
    @patch('load_json_path.urlopen')
    def test_load_json(self, mock_urlopen):
        ### trying to simplify all of this
        # third nested return
        mock_decode = MagicMock(return_value='["myjsondata"]')
        # second nested return value
        mock_response = MagicMock()
        mock_response.read.return_value=mock_decode
        # first nested return value
        mock_urlopen.return_value = mock_response
        ### trying to simplify all of this            

        load_json()
Run Code Online (Sandbox Code Playgroud)

最后,我试图模拟的是来自解码函数的返回数据,它来自url …

python nested mocking

11
推荐指数
2
解决办法
5651
查看次数

Python - 阅读表情符号Unicode字符

我有一个Python 2.7程序,它从SQLite数据库中读取iOS文本消息.文本消息是unicode字符串.在以下文字信息中:

u'that\u2019s \U0001f63b'
Run Code Online (Sandbox Code Playgroud)

撇号由表示\u2019,但表情符号由表示\U0001f63b.我查找了有问题的表情符号的代码点,就是这样\uf63b.我不确定它的0001来源.我对字符编码很少了解.

当我逐个字符地打印文本时,使用:

s = u'that\u2019s \U0001f63b'

for c in s:
    print c.encode('unicode_escape')
Run Code Online (Sandbox Code Playgroud)

该程序产生以下输出:

t
h
a
t
\u2019
s

\ud83d
\ude3b
Run Code Online (Sandbox Code Playgroud)

如何在Python中正确读取这些最后的字符?我在这里正确使用编码吗?我是否应该0001在阅读之前尝试将其丢弃,或者是否有更容易,更不傻的方式?

python unicode python-2.7 emoji

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

D3中的循环过渡

基本论述:我有点像D3新手.

我的目标是让一条线从A点移动到B点,然后立即重新出现在A点并重复该过渡.我尝试了很多不同的东西,但这是我最接近的.

var svg = d3.select("body")
        .append("svg")
        .attr("width", 500)
        .attr("height", 500);

// code, code, code, irrelevant code...

function timeForTimeline(){ // har
    var timeline = svg.append("line")
        .attr("stroke", "steelblue")
        .attr({
            'x1': 0,
            'y1': 130,
            'x2': 168,
            'y2': 130
        });
    (function repeat() {
        timeline = timeline
            .transition()
            .duration(4000)
            .ease("linear")
            .attr({
                'x1': 0,
                'y1': 430,
                'x2': 168,
                'y2': 430   
            })
            .each("end", function(){
                d3.select(this)
                    .transition()
                    .duration(0)
                    .attr({
                        'x1': 0,
                        'y1': 130,
                        'x2': 168,
                        'y2': 130
                    })
                    .each("end", repeat);
            });
    })();
};
Run Code Online (Sandbox Code Playgroud)

结果是一个很好的起始转换,然后在A点和B点之间快速跳转,而不会使该duration(4000)位生效.我也尝试删除底部的行(d3.select(this).remove() …

javascript svg d3.js

8
推荐指数
1
解决办法
8374
查看次数

Scikit Learn - 从特征数组的语料库中计算TF-IDF,而不是从原始文档的语料库中计算TF-IDF

Scikit-Learn的TfidfVectorizer将原始文档集合转换为TF-IDF特征矩阵.我希望将功能名称矩阵转换为TF-IDF功能,而不是原始文档.

您提供的语料库fit_transform()应该是一组原始文档,但我希望能够为每个文档提供一系列特征数组(或类似函数).例如:

corpus = [
    ['orange', 'red', 'blue'],
    ['orange', 'yellow', 'red'],
    ['orange', 'green', 'purple (if you believe in purple)'],
    ['orange', 'reddish orange', 'black and blue']
]
Run Code Online (Sandbox Code Playgroud)

...而不是一维字符串数组.

我知道我可以为TfidfVectorizer定义我自己的词汇表,所以我可以轻松地在我的语料库中创建一个独特特征的词典,并在特征向量中创建它们的索引.但是该函数仍然需要原始文档,并且因为我的功能有不同的长度并偶尔重叠(例如,'orange'和'reddish orange'),所以我不能将我的功能连接成单个字符串并使用ngrams.

是否有我可以使用的不同的Scikit-Learn功能,我找不到?有没有办法使用我没见过的TfidfVectorizer?或者我必须自制自己的TF-IDF功能吗?

python machine-learning tf-idf scikit-learn

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

缩放角度PDF查看器以适合封闭元素

我正在使用Angular PDF Viewer,它非常棒,而且我很喜欢它,但是我很难将它缩小到正确的范围.

这是一些示例代码(使用Pure CSS,但如果我使用Bootstrap脚手架,问题就是相关的):

<div class="pure-g">
  <div class="pure-u-8-24">
    <pdf-viewer delegate-handle="loaded_doc_viewer" url="uploaded_doc_data_url" scale="1"></pdf-viewer>
  </div>
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

问题是pdf-viewer的大小取决于pdf的大小而不是包含的grid元素.

有没有办法在不做任何愚蠢和hacky的事情的情况下调整画布大小,理想情况下使用宽度(ala width:100%)的百分比来保持它与网格一致?如果没有,是否有一种愚蠢和愚蠢的方式来完成同样的事情?

css layout angularjs pdf.js

5
推荐指数
0
解决办法
1371
查看次数

VIM脚本用注释字符包围多行注释

对于我工作地点的标题样式注释(包括文件中的主要新代码段),我们使用以下标准:

##################################
# This is a multiline comment    #
# and we've surrounded it by the #
# comment symbol.                #
##################################
Run Code Online (Sandbox Code Playgroud)

如果有一个冗长的多行注释(因为通常在描述性标题中),这可能需要一分钟.这是一项微不足道的任务,我想让它自动化.我的目标是编写一个脚本,允许我选择一个范围(在可视模式下),输入命令,然后输入注释字符,从而将所选行包含在如上所示的框中.我在VIM脚本上做了一些尝试,但老实说,之前从未编写过VIM脚本,我的代码很乱,我认为发布它的原因实际上是不利的.

有关如何构建此建议的任何建议?

vim

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

将结果从Python返回给Vba

我正在使用调用python脚本的VBA代码.我可以将参数发送到我的python脚本并使用它来读取它sys.argv[1].

在python代码中,我有一个函数,它接受给定的参数并返回一个值.

请问如何在VBA中获得返回值?

python vba

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

具有度量的Tableau饼图

我有每个SiteID的许多度量值的数据,即

Total Windows    Total Mac    Total Online    Total Offline    Total Computers    SiteID
Run Code Online (Sandbox Code Playgroud)

我一直在谷歌搜索如何在Tableau中创建饼图,但这些教程假设我有类似的数据

 OS    Status    SiteID
Run Code Online (Sandbox Code Playgroud)

我最终要做的是创建一个在线与离线用户的饼图,并使用其他数据点的操作来过滤该图表.

我只需要知道如何创建饼图,然后我可以创建动作.

tableau-api pie-chart

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

如何根据Tableau上的点击过滤不同工作表上的数据

如何根据Tableau中的点击过滤不同工作表上的数据.例如:

表1 - 分区如下所示:

+------+-------+-----+
| Name | Month | ... |
+------+-------+-----+
| A    | Jan   | ... |
| B    | Jan   | ... |
| C    | Feb   | ... |
| D    | Mar   | ... |
| ...  | ...   | ... |
+------+-------+-----+
Run Code Online (Sandbox Code Playgroud)

表2 - 分区包括Month.

当我在Sheet 1上单击Jan时,Tableau可以在Sheet 2上过滤Jan吗?

我尝试包含一个URL并使过滤器对所有工作表都是通用的,但过滤器不能"点击"吗?

tableau-api

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