小编Mar*_*ing的帖子

自定义按最高值对n个项目进行多维排序

我目前能够使用自定义排序方法对多维数组进行排序。每个数组lineupSet都有n一定数量的项目。该函数sort_points将按lineupSet从高到低的顺序对每个对象进行排序totalPoints,然后将给我lineupSet总计最高的totalPoints。我目前正在改变方法,我仍然想按lineupSet优先顺序从高到低排序。然后,我想根据给定的数量获得最高totalPointslineupSet收益。解决此问题的最佳方法是什么?

测试数组:

$testArray = [[
    "lineupSet" => [
        [[
            "formula" => [
                "totalPoints" => 214.61,
            ],
            "name"    => "arr0-test0",
        ], [
            "formula" => [
                "totalPoints" => 201.17,
            ],
            "name"    => "arr0-test1",
        ]], [
            "formula" => [
                "totalPoints" => 5.01,
            ],
            "name"    => "arr0-test2",
        ]],
], [
    "lineupSet" => [
        [[
            "formula" => [
                "totalPoints" => 214.76,
            ],
            "name"    => "arr1-test0", …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting

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

刮擦无限滚动页面会停止而不滚动

我目前正在与PhantomJS和CasperJS合作,以搜索网站中的链接.该网站使用javascript动态加载结果.但是下面的代码片段并没有让我获得该页面包含的所有结果.我需要的是向下滚动到页面底部,查看微调器是否显示(意味着还有更多内容),等待新内容加载后再继续滚动直到不再显示新内容.然后将带有类名的链接存储.title在一个数组中.链接到网页进行抓取.

var casper = require('casper').create();
var urls = [];
function tryAndScroll(casper) {
  casper.waitFor(function() {
    this.page.scrollPosition = { top: this.page.scrollPosition["top"] + 4000, left: 0 };
    return true;
  }, function() {
    var info = this.getElementInfo('.badge-post-grid-load-more');
    if (info["visible"] == true) {
      this.waitWhileVisible('.badge-post-grid-load-more', function () {
        this.emit('results.loaded');
      }, function () {
        this.echo('next results not loaded');
      }, 5000);
    }
  }, function() {
    this.echo("Scrolling failed. Sorry.").exit();
  }, 500);
}

casper.on('results.loaded', function () {
  tryAndScroll(this);
});

casper.start('http://example.com/', function() {
    this.waitUntilVisible('.title', function() {
        tryAndScroll(this); …
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs casperjs

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

执行脚本的多个实例 - GNU Parallel

我目前正在尝试使用GNU Parallel,但是我没有成功。安装非常简单。我的目标是运行 python 脚本youtube-dl的两个并行实例及其相应的参数。使用并行执行脚本的正确方法是什么?

平行线

parallel 'youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn"' 'youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla"'
Run Code Online (Sandbox Code Playgroud)

如果单独运行命令而不并行运行,它会起作用:

youtube-dl -w --no-warnings -o "/media/video1.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/stun-gun-used-on-man-in-police-custody-dies-lawsuit-dnt-brown-tsr.cnn"

youtube-dl -w --no-warnings -o "/media/video2.%(ext)s" "http://www.cnn.com/videos/us/2015/11/11/5-year-old-saves-family-from-house-fire.ktla"
Run Code Online (Sandbox Code Playgroud)

linux parallel-processing bash

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

使用内连接并按降序对记录进行排序

我正在我的数据库中使用两个表(student_classclass)。我在下面有一个查询,显示classstudents. 但这并不是我想要的。如何显示有学生但显示结果的班级,因此最大座位数正在下降。需要计数吗?

SELECT 
    class.class_name 
FROM 
    class 
INNER JOIN 
    student_class ON class.class_id = student_class.class_id; 
Run Code Online (Sandbox Code Playgroud)

表格:

Student_class

 CLASS_ID STUDENT_ID
---------- ----------
         2         12
         2         11
         2          2
         7          5
         7          6
         7          7
         7          8
         7          9
         9          2
         9         11
         9         12
        10         20
        10          2
        10          4
Run Code Online (Sandbox Code Playgroud)

Class

  CLASS_ID CLASS_NAME          TEACHER_ID MAX_SEATS_AVAILABLE
---------- ------------------- ---------- -------------------
         1 Intro to ALGEBRA            11                  12
         2 Basic CALCULUS               2                  10
         3 ABC and …
Run Code Online (Sandbox Code Playgroud)

sql

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

Jq tsv - 从键创建标头

我试图让 jq 将 json 对象渲染为 tsv 格式。我遇到了一种使用键名称动态生成标头的方法。

我收到此错误:

对象 ({"version":...) 在 csv 行中无效

我猜测这是由于某些字段是数组:InstalledLatest。我怎样才能使其在这些领域发挥作用?另外,为什么我的输出包括\t

电流输出:

"RELEASE\tINSTALLED\tLATEST\tOUTDATED\tDEPRECATED"
jq: error (at <stdin>:28): object ({"version":...) is not valid in a csv row
Run Code Online (Sandbox Code Playgroud)

期望的输出:

RELEASE         INSTALLED    LATEST    OUTDATED      DEPRACATED
test-app        1.0.0        2.0.0     true          false    
test-app2       3.0.0        3.5.0     true          false 
Run Code Online (Sandbox Code Playgroud)

杰克

cat test1.json | jq '[.[]| with_entries( .key |= ascii_upcase ) ] | (.[0] |keys_unsorted | @tsv), (.[]|.|map(.) |@tsv)'
Run Code Online (Sandbox Code Playgroud)

格式:

[
  {
    "release": "test-app",
    "Installed": {
      "version": "1.0.0",
      "appVersion": …
Run Code Online (Sandbox Code Playgroud)

bash json jq

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

Jq 处理空字符串并将其替换为默认值

我目前有一个用 jq 操作的 json 文件。在大多数情况下,我能够按照我想要的方式显示它。但是,在显示空字段的值时遇到问题。我正在使用//替代运算符,但它没有返回所需的输出。使用 jq 处理空字符串的正确方法是什么?

电流输出:

RELEASE    INSTALLED  LATEST  DEPRECATED
test-app   1.0.0      2.0.0   false
test-app2  3.0.0      true
Run Code Online (Sandbox Code Playgroud)

期望的输出:

RELEASE    INSTALLED  LATEST  DEPRECATED
test-app   1.0.0      2.0.0   false
test-app2  3.0.0      -        true
Run Code Online (Sandbox Code Playgroud)

杰q:

cat test1.json | jq -r 'map({release, installed: .Installed.version, latest: (.Latest.version // "-"), deprecated}) | ( .[0] | keys_unsorted | map(ascii_upcase)), (.[] | [.[]]) | @tsv' | column -t
Run Code Online (Sandbox Code Playgroud)

杰森:

[
  {
    "release": "test-app",
    "Installed": {
      "version": "1.0.0",
      "appVersion": ""
    },
    "Latest": {
      "version": "2.0.0",
      "appVersion": …
Run Code Online (Sandbox Code Playgroud)

bash json jq

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

Casperjs ajax调用 - waitForResource和解析错误

Casperjs是一个很棒的工具.我已经能够理解某些基础知识.但是,我正在努力解决两个问题.首先,为了关闭原因,我将代码分成几个函数.我得到一个解析错误.我已经添加了选项verbose: true, logLevel: "debug",看它是否指出了行号,但我没有得到任何结果.其次,我想做一个异步的ajax调用.我正在使用,waitFor但我读了这篇文章是为了更有效的方式.如何设置waitForResource()跟踪AJAX请求?以及如何显示解析错误行?

var urls = ['http://9gag.tv/'];
var casper = require('casper').create({
    verbose: true,
    logLevel: "debug"
});

function getNumberOfItems(casper) {
    return casper.getElementsInfo(".listview .badge-grid-item").length;
}

function tryAndScroll(casper) {
  casper.page.scrollPosition = { top: casper.page.scrollPosition["top"] + 4000, left: 0 };
  var info = casper.getElementInfo('.badge-post-grid-load-more');
  if (info.visible) {
    var curItems = getNumberOfItems(casper);
    if( curItems <= 60 ) {
        casper.waitFor(function check(){
          return curItems != getNumberOfItems(casper);
        }, function then(){
          tryAndScroll(this);
        }, function onTimeout(){
          this.echo("Timout reached");
        }, 10000); …
Run Code Online (Sandbox Code Playgroud)

javascript ajax casperjs

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

表结构 - 链接一个具有多个类ID的学生

我目前正面临着我设计的桌面问题(请参见下文).一个学生可以属于多个班级.我开始在以后的一列中存储多个值,以了解这是一个很大的不.例如,class_id在存储由逗号分隔的值时,faces会出现类型丢失和成为字符串的问题.我已阅读制作文章,它表示制作两个表一个用于课堂,另一个用于学生,但不确定如何插入基本上将学生链接到多个班级的数据.什么是最好的方法?

目前的做法:

------------        ----------      ------------    -------------
student_fname       student_id      class_name      class_id
------------        ----------      ------------    -------------
james               Vre94b3JpXO     math,science    5697,5768
jim                 JzqQ2zRVNm1     art, music      7604,7528
jenny               xgqv9P42eYL     physical-ed     6422    
kyle                QLNM0Wbyqk0     computer,jrotoc 6315,8797
kimberly            P2egAddWN0Q     culinary-arts   8069
kayla               EGNDjWAreAy     science, art    5768,7604 
noah                bPeOyMMONGr     math, music     5697,7528
nataly              9Op53GGmqk5     jrotc           8797
Run Code Online (Sandbox Code Playgroud)

建议的方法:

------------        ----------
class name          class id
------------        ----------
math                5697
science             5768
computer            6315
physical-ed         6422
music               7528
art                 7604
jrotc               8797
culinary-arts       8069

------------        ----------
student fname …
Run Code Online (Sandbox Code Playgroud)

mysql database-design normalization

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

Guzzle/Goutte - 基本抓取 - 将变量传递给请求

我目前正在使用一个名为Goutte的简单 php 爬虫。它使用Guzzle来执行 httpGET请求。我能够执行抓取操作。但是,我试图在内部传递/回显一个变量,filter但出现错误Undefined variable: x。变量已定义。将变量传递给过滤器的正确方法是什么?

$client = new Goutte\Client();
$crawler = $client->request('GET', 'http://github.com/');
$crawler = $client->click($crawler->selectLink('Sign in')->link());
$form    = $crawler->selectButton('Sign in')->form();
$x       = "hello";
$crawler = $client->submit($form, array('login' => 'xxxxx', 'password' => 'xxxxx'));
$crawler->filter('.flash-error')->each(function ($node) {
    echo $x;
    print $node->text() . "\n";
});
Run Code Online (Sandbox Code Playgroud)

php goutte guzzle

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