小编Seb*_*ian的帖子

Python json.loads改变了对象的顺序

我有一个包含JSON对象的文件.它已按以下方式加载:

with open('data.json', 'r') as input_file:
  input_data = input_file.read()
Run Code Online (Sandbox Code Playgroud)

此时input_data只包含一个字符串,现在我继续将其解析为JSON:

data_content = json.loads(input_data.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

data_content具有字符串的JSON表示,这是我需要的,但由于某些原因,在json.loads之后我不清楚它正在改变键的原始顺序,所以例如,如果我的文件包含如下内容:

{ "z_id": 312312,
  "fname": "test",
  "program": "none",
  "org": null
}
Run Code Online (Sandbox Code Playgroud)

在json.loads之后,订单被改变为让我们说:

{ "fname": "test",
  "program": None,
  "z_id": 312312,
  "org": "none"
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?有没有办法保存订单?我正在使用Python 2.7.

python json python-2.7

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

RPGLE中EVAL和MOVE之间的区别是什么

我最近进入了IBM的RPG世界,所以在编写一些代码并查看其他人的代码时,我发现有些人使用Eval,而另一些人则使用Move来完成同样的事情.它们之间有什么区别吗?

谢谢.

rpg rpgle ibm-midrange

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

对象数组中的最大值

我是红宝石新手。我正在尝试执行以下操作,但没有成功。

我有一个对象数组,我们称它为objs。每个对象都有多个属性,其中之一是一个保存数字的变量,我们称其为val1。我想遍历对象数组,并确定所有对象的val1最大值。

我尝试了以下方法:

def init(objs)
  @objs = objs
  @max = 0
  cal_max
end

def cal_max

  @max = @objs.find { |obj| obj.val1 >= max }

  # also tried
  @objs.each { |obj| @max = obj.val1 if obj.val1 >= @max }

end
Run Code Online (Sandbox Code Playgroud)

正如我所说,我只是在学习块。

任何建议都欢迎。

谢谢

ruby arrays iteration loops block

4
推荐指数
2
解决办法
1083
查看次数

在 XlsxWriter 中使用工作表元素创建下拉列表

所以我正在创建一个包含某些数据的电子表格。电子表格中的某些单元格需要有一个包含预定义数据的下拉列表。对于某些细胞来说,这个过程非常简单:

worksheet.data_validation(start_row, start_column, end_row, end_column, {'validate': 'list', 'source': options }
Run Code Online (Sandbox Code Playgroud)

其中 options 是项目列表。

事实证明,这个项目列表被转换为字符串,如果字符串超过 255 个字符,那么(由于 Excel 限制)不可能创建下拉列表。

由于不同的单元格可能有不同的选项,我正在检查选项的长度(转换为字符串)是否 >= 255,如果是,那么我将创建一个新工作表并在那里记下选项。

def create_options_sheet(self, name, values):

    options_worksheet = self.workbook.add_worksheet(name)

    opt_col = 0
    opt_row = 0

    for elem in values:
        options_worksheet.write(opt_row, opt_col, elem)
        opt_row += 1
Run Code Online (Sandbox Code Playgroud)

因此,我计划采用与此类似的方法从当前工作表访问这些选项:

current_worksheet.data_validation(start_row, start_column, end_row, end_column, {'validate': 'list', 'source': options_sheet})
Run Code Online (Sandbox Code Playgroud)

其中 options_sheet 是对选项表的引用,使用类似 =$A$1:$A$10 的范围。我的问题是:如何加载该工作表并从当前工作表访问它?

python python-2.7 xlsxwriter

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

JQuery DataTables默认排序无效

我的数据表默认排序由于某些我无法弄清楚的原因而无法正常工作.但数据显示正确.分页也不起作用.第一列包含图像,但我将其设置为默认不执行任何排序.

任何帮助都非常感谢.

这是我正在使用的代码的一部分:

var oTable = $('#datatables').dataTable( {
        "aaSorting": [[2, 'asc']],
        "bProcessing": true,
        "bServerSide": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": "process.php",
        "aoColumns": [
            {
                "mData": null,
                "aTargets": [0],
                "bSerchable": false,
                "bSortable": false,
                "sDefaultContent": '<div class="expand /">',
                "sWidth": "30px"
            },
            { 
                "mDataProp": "email",
                "aTargets": [1],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "lastName",
                "aTargets": [2],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "firstName",
                "aTargets": [3],
                "bSearchable": true,
                "bSortable": true
            },
            { 
                "mDataProp": "dateRegistered",
                "aTargets": [4],
                "sClass": "center",
                "bSearchable": true,
                "bSortable": true
            }
        ] …
Run Code Online (Sandbox Code Playgroud)

javascript php sorting jquery datatables

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

Ajax readyState总是返回0

我遇到了这个Ajax代码的问题,每次访问'readyState'时返回0.不知道问题的根源是什么,任何帮助将不胜感激:

var xhr = null;
function performAjax(inputUrl){

    // instantiate XMLHttpRequest object
    try{
        xhr = new XMLHttpRequest();
        alert("XMLHttpRequest");
    }
    catch(e){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    // handle old browsers
    if( xhr == null ) {
        alert("Ajax not supported by your browser");
        return;
    }

    // get the URL
    var url = inputUrl;
    alert(inputUrl);
    // get Ajax answer
    xhr.onreadystatechange = handler();
    //alert(xhr.readyState);
    xhr.open("POST", url, true);
    xhr.send(null);
}

function handler() {

    alert("Handler: " + xhr.readyState + " Status: " + xhr.status);
    // handle only …
Run Code Online (Sandbox Code Playgroud)

javascript ajax

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

将SUM()生成的两个值添加为新列

我有以下查询:

SELECT 
    permit_id, 
    SUM(poc_emissions) AS POC_emissions, 
    SUM(non_poc_emissions) AS NON_POC_emissions
FROM 
    ( .... SUBQUERY ...) main
GROUP BY 
    permit_id
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是从增加值POC_emissionsNON_POC_emissions到一个名为让我们说新列TOTAL.

我试过了:

SELECT 
    permit_id, 
    SUM(poc_emissions) AS POC_emissions, 
    SUM(non_poc_emissions) AS NON_POC_emissions, 
    (POC_emissions + NON_POC_emissions) AS Total
FROM 
    ( .... SUBQUERY ...) main
GROUP BY 
    permit_id
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误.

有什么建议?

谢谢

sql sql-server

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