小编sup*_*kar的帖子

使用Lodash展平嵌套的对象数组

我的对象看起来像这样:

const features = [{
                  'name': 'feature1', 'tags':
                  [{'weight':10, 'tagName': 't1'},{'weight':20, 'tagName': 't2'}, {'weight':30, 'tagName': 't3'}]
                  },
                  {
                  'name': 'feature2', 'tags':
                  [{'weight':40, 'tagName': 't1'}, {'weight':5, 'tagName':'t2'}, {'weight':70, 'tagName':'t3'}]
                  },
                  {
                  'name': 'feature3', 'tags':[
                  {'weight':50, 'tagName': 't1'}, {'weight':2, 'tagName': 't2'}, {'weight':80, 'tagName': 't3'}]
                 }]
Run Code Online (Sandbox Code Playgroud)

我希望我的输出看起来像这样:

const features = [{'name':'feature1', 'weight':10, 'tagName':'t1'}, 
                  {'name':'feature1', 'weight':20, 'tagName':'t2'}, ...
                  {'name':'feature3', 'weight':80, 'tagName':'t3'}]
Run Code Online (Sandbox Code Playgroud)

我试过了merge,flatten但它不起作用.

更新1 我试过这个:

let feat = features;

results = []

_.each(feat, (item) => { 
                        console.log(item);
                        results.push(_.flatten(_.pick(item.tags, 'weight'))); // pick …
Run Code Online (Sandbox Code Playgroud)

lodash

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

Backbone局部视图无法渲染最新模型

我对Backbone相对较新,我遇到了这个问题.

我正在使用Backbone和DustJS

我的模板看起来像这样 - index.dust

<div id="parentView">
  <div class="section">
    {>"app/inc/responseMessage" /}
    <div class="userDetails">
      {! A button to get user details !}
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的部分 - responseMessage.dust

<div id="responseMessage">
  {@eq key="{data.success}" value="true"}
    <div class="alert alert-success success" role="alert">success</div>
  {/eq}
</div>
Run Code Online (Sandbox Code Playgroud)

我的JS看起来像这样

initialize: function() {
    this.responseMessageView = this.responseMessageView ||
        new ResponseMessageView({
            model: new Backbone.Model()
        }); // View is for the partial
    this.model = this.model || new Backbone.Model(); //View for the whole page
},
Run Code Online (Sandbox Code Playgroud)

当事件发生时调用下面的函数,它执行POST并成功返回.

primaryViewEventTrigger: function(event){
  //Button click on `index.dust` triggers this …
Run Code Online (Sandbox Code Playgroud)

javascript jquery backbone.js backbone-views

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

如何在asdict中获取@property方法?

我有类似的东西:

from attr import attrs, attrib

@attrs
class Foo():
    max_count = attrib()
    @property
    def get_max_plus_one(self):
         return self.max_count + 1
Run Code Online (Sandbox Code Playgroud)

现在当我这样做时:

f = Foo(max_count=2)
f.get_max_plus_one =>3
Run Code Online (Sandbox Code Playgroud)

我想将其转换为字典:

{'max_count':2, 'get_max_plus_one': 3}
Run Code Online (Sandbox Code Playgroud)

当我使用时,attr.asdict(f)我没有得到@property. 我只得到 {'max_count':2}.

实现上述目标的最干净的方法是什么?

python python-attrs

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

Django order_by在嵌套的json字段上

我的模特是这样的.

class Foo():
    bar = models.ForeignKey('Bar', related_name='bar')
    payload = JSONField()

class Bar():
    candy = models.ForeignKey('Candy', related_name='candy')

class Candy():
    payload = JSONField()
Run Code Online (Sandbox Code Playgroud)

我的查询集看起来像这样

# I want to order by a name on the json field
queryset = [
{
  "id": 1,
  "payload": {"age": 10, "company": "ccc"}
  "bar": 
   {
     'id': 1,
      "candy":
       {
        "payload": 
           {
           "names": ["text":"abc", "tag":"foo"], ["text":"abb", "tag":"bar"]
           }
       }
   }
 }, 
 {
  "id": 2,
  "payload": {"age": 12, "company": "aa"}
  "bar": 
   {
     'id': 2,
      "candy":
       {
        "payload": 
           {
           "names": ["text":"aaa", …
Run Code Online (Sandbox Code Playgroud)

python sql django json django-queryset

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

AngularJS:$ resource自定义方法未被调用

我有一个定义了资源,我已经定义了一个自定义方法.在我的模板中,我无法使用此方法.我的代码看起来像这样.未调用getName()函数.我在这里想念的是什么

personservices.factory("Person", ["$resource", function($resource) {
  var Persons =  $resource("", {}, {
  query: {method:'GET'}
});                                                       

 Persons.prototype.getName = function () {
   /* do something */ 
   return name;
  }
  return Persons;
}]); 


<ul>
  <li ng-repeat="person in persons">
    {{ person.getName() }} -> not being called
    {{ person.id }} 
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

$scope.Persons = Person.query() - >完美的工作

javascript angularjs angularjs-ng-repeat

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

在给出HTML和Xpath时突出显示

将HTML作为字符串,Xpath和偏移量.我需要突出这个词.

在下面的例子中,我需要强调一下 Child 1

HTML文字:

<html>
 <body>
       <h2>Children</h2>Joe has three kids:<br/>
       <ul>
        <li>
        <a href="#">Child 1 name</a>
        </li>
        <li>kid2</li>
        <li>kid3</li>
       </ul>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

XPATH为: /html/body/ul/li[1]/a[1]

偏移: 0,7

渲染 - 我react在我的应用程序中使用.以下是我到目前为止所做的工作.

public render(){
  let htmlText = //The string above
  let doc = new DOMParser().parseFromString(htmlRender,'text/html');
  let ele = doc.evaluate("/html/body/ul/li[1]/a[1]", doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); //This gives the node itself
  let spanNode = document.createElement("span");
  spanNode.className = "highlight";

  spanNode.appendChild(ele);
  // Wrapping the above node in a span class will add the highlights to …
Run Code Online (Sandbox Code Playgroud)

html javascript xpath reactjs

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

Django JSONField 具有特定的键

我的课是这样的:

class Foo(models.Model):
  known_by = JSONField()
Run Code Online (Sandbox Code Playgroud)

我的数据看起来像这样

{ "known_by" : [
                {'by':'name1', 'value':['def']},
                {'by':'name2', 'value':['bar']}
               ]
}
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以强制Jsonfield要求遵循by,value[]dict. 我知道如何使用serialiazers

任何其他更清晰的方法来强制执行此操作(在模型定义本身中)?谢谢

django django-models django-rest-framework django-jsonfield

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

django 上的 memcache 不起作用

我在Celery. 受此启发 - http://ask.github.io/celery/cookbook/tasks.html#ensuring-a-task-is-only-executed-one-at-a-time我决定使用 memcache 添加锁我的任务。

这些是我所做的更改:

python-memcached

# settings for memcache
CACHES = {
  'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': '127.0.0.1:11211',
   }
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我登录到我的 shell 并执行以下操作

>>> import os
>>> import django
>>> from django.core.cache import cache
>>> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings.base')
>>> cache
<django.core.cache.DefaultCacheProxy object at 0x101e4c860>
>>> cache.set('my_key', 'hello, world!', 30) #display nothing. No T/F
>>> cache.get('my_key') #Display nothing.
>>> from django.core.cache import caches
>>> caches['default']
<django.core.cache.backends.memcached.MemcachedCache object at 0x1048a5208>
>>> caches['default'].set('my_key', 'hello, world!', 30) #display nothing. …
Run Code Online (Sandbox Code Playgroud)

django memcached django-cache celery python-memcached

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

用新值更新数据框列

df1 有字段idjson;df2 有字段idjson

df1.count()=> 1200; df2.count()=> 20

df1 包含所有行。df2 有一个只有 20 行的增量更新。

我的目标是用 .df1 中的值更新 df1 df2。的所有 iddf2都在 df1 中。但是 df2 已经更新json了这些相同 ID 的值(在字段中)。

结果 df 应该具有来自 的所有值df1和来自 的更新值df2

做这个的最好方式是什么?- 使用最少的连接和过滤器。

谢谢!

apache-spark pyspark

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

如何将对象实例传递给 jinja html 模板

我的班级看起来像这样

class Foo():
    x = attrib()
    y = attrib()


f = Foo(x=1, y=2)
Run Code Online (Sandbox Code Playgroud)

我的模板看起来像

<html>
<body>
 <span>{{x}}</span> -> instead of this I want to use foo.x
 <span>{{y}}</span> -> instead of this I want to use foo.y
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我用来template.render(**attr.asdict(f))渲染它。相反,我只想通过template.render(f)并使用{{f.x}}{{f.y}}

有没有办法做到这一点?我不断遇到错误

vars = dict(*args, **kwargs)
TypeError: 'Foo' object is not iterable
Run Code Online (Sandbox Code Playgroud)

python jinja2

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

正则表达式 - 字符串不应包含超过7位数

字符串规则:

  • 可以包含0-7位数字

测试用例 :

  • abcd1234ghi567True
  • 1234567abctrue
  • ab1234cd567true
  • abc12True
  • abc12345678False

我如何为它提出正则表达式?

我面临的问题是 - 如何保持整个字符串中的数字位数.数字可以出现在字符串中的任何位置.

我想要一个纯正则表达式解决方案

regex regex-negation

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