小编Din*_*esh的帖子

Python到JSON序列化在Decimal上失败

我有一个包含一些小数的python对象.这导致json.dumps()中断.

我从SO得到了以下解决方案(例如Python JSON序列化一个Decimal对象),但重新解决的解决方案仍然不起作用.Python网站 - 有完全相同的答案.

有任何建议如何使这项工作?

谢谢.以下是我的代码.看起来dumps()甚至没有进入专门的编码器.

clayton@mserver:~/python> cat test1.py
import json, decimal

class DecimalEncoder(json.JSONEncoder):
        def _iterencode(self, o, markers=None):
                print "here we go o is a == ", type(o)
                if isinstance(o, decimal.Decimal):
                        print "woohoo! got a decimal"
                        return (str(o) for o in [o])
                return super(DecimalEncoder, self)._iterencode(o, markers)

z = json.dumps( {'x': decimal.Decimal('5.5')}, cls=DecimalEncoder )
print z
clayton@mserver:~/python> python test1.py
Traceback (most recent call last):
  File "test1.py", line 11, in <module>
    z = json.dumps( {'x': decimal.Decimal('5.5')}, cls=DecimalEncoder )
  File …
Run Code Online (Sandbox Code Playgroud)

python json decimal

30
推荐指数
3
解决办法
4万
查看次数

cordova build --release android总是选择最高的api级别

我正在尝试使用ionicframework为android构建我的cordova应用程序.我已将目标API级别设置为16(我已经从Android SDK管理器安装了它)但它总是以21级的方式获得.

在project/config.xml中:

 <preference name="android-targetSdkVersion" value="16"/>
Run Code Online (Sandbox Code Playgroud)

在platforms/android/AndroidManifest.xml中,它显示相同:

 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="16" />
Run Code Online (Sandbox Code Playgroud)

但是跑步cordova build --release android我得到:

-build-setup:
[getbuildtools] Using latest Build Tools: 22.0.0
     [echo] Resolving Build Target for OpsVedaMobile...
[gettarget] Project Target:   Android 5.0.1
[gettarget] API level:        21
Run Code Online (Sandbox Code Playgroud)

我怀疑我错过了一些设置,会很感激帮助.我使用了这个离子文档中的方法

离子:1.0.0.rc-5,离子CLI:1.3.22,cordova:5.0.0,节点:0.10.36 - 在Windows7上

- 编辑

似乎目标水平根本没有关系.我现在想知道它是如何/在哪里变得重要.

android cordova ionic-framework

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

有没有办法在android chrome上执行--disable-web-security

我正在开发一个内容服务器是远程的移动Web应用程序.我可以使用"--disable-web-security"选项在桌面Chrome上进行一些基本测试.Android上的chrome上是否有类似的功能?或者,Android上的任何其他浏览器?

非常感谢.

- 编辑

我包括这些标题 - 授权,访问控制 - 允许 - 来源,访问控制 - 允许 - 凭据; 但它似乎对数据服务器没有影响.我错过了其他任何设置吗?

webapp代码驻留在本地PC上; 远程主机上的数据; 和浏览器在本地局域网中的移动设备上.

android google-chrome cors

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

Java Applets - 今天它是一个错误的选择吗?

我有一些非平凡的计算代码需要应用于已下载到浏览器DOM中并从用户交互中捕获的数据.我不希望公开这段代码.我想知道是否:

  1. 编写Web服务并通过websocket或http与浏览器进行通信.权衡是交互速度(从光滑到差)和更高的流量成本.
  2. 编写一个Java Applet(签名隐藏代码),封装逻辑在页面中,让JavaScript与Java api交互.我在别处读到Java和JS引擎在某些情况下会陷入僵局.但是因为我只是计算,所以这不是问题.也许,在多核机器上,我可以使用更多的线程来分配我的工作.
  3. 用JavaScript编写.但JavaScript很难测试,而且这一切都在公众眼中.

诸如网络中的Java小程序的可用性以及其他几个方面的问答也令人沮丧.

我的问题是:Java applets是一种死技术.这些天甚至没有关于这个话题的问答!此外,Java可能并不总是与所有浏览器(台式机,平板电脑或移动设备)捆绑在一起?

是否有更好的方法来实现相同的隐藏代码,利用客户端CPU/RAM,最小化数据流量?

网页在Javascript/html5/css上.服务器只提供JSON/XML.数据包为10-20KB并经常更新.计算是昂贵的和客户端特定的,所以我真的想使用客户端来做所有这些.

非常感谢.

javascript java applet

12
推荐指数
2
解决办法
8062
查看次数

python如何修剪csv DictReader键中的尾随空格

我正在使用python(2.6)csv DictReader.我的输入文件有一个标题行,其中列名称有尾随空格:

colname1,      colname2     ,col3, etc.
XX, YY, ZZ
Run Code Online (Sandbox Code Playgroud)

返回的dict对象有key()= ['colname1', 'colname2 ', 'col3']

是否可以选择修剪键的前导和尾随空格?

- 编辑

在键名处理中出现问题:

with open(fname) as f:
   r = csv.DictReader(f)
   for row in r:
      print "processing", r["column1"], r["column2"]
Run Code Online (Sandbox Code Playgroud)

这些文件是数据库转储.转储程序太聪明了 - 它根据数据调整输出列宽度 - 这意味着不同的选择集将具有不同的列宽和不同的密钥长度.有时我必须使用r['column2 '],有时填充或减少空间.哎哟!

python

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

PostgreSQL - 舍入浮点数

我有一个关于PostgreSQL 9.2中浮点数的新手问题.

是否有直接舍入浮点数的函数,即不必先将数字转换为数字类型?

另外,我想知道是否存在以任意度量单位舍入的函数,例如最接近0.05?

首先将数字转换为十进制形式时,以下查询可以完美地运行:

SELECT round(1/3.::numeric,4);

 round  
--------
 0.3333
(1 row)
Time: 0.917 ms
Run Code Online (Sandbox Code Playgroud)

但是,我真正希望实现的是以下内容:

SELECT round(1/3.::float,4);
Run Code Online (Sandbox Code Playgroud)

目前给我以下错误:

ERROR:  function round(double precision, integer) does not exist at character 8
Time: 0.949 ms
Run Code Online (Sandbox Code Playgroud)

谢谢

postgresql

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

bash 自动补全转义 $

在 shell ( GNU bash, version 4.2.47(1)-release (x86_64-suse-linux-gnu)) 中,当我点击 tab 进行自动补全时,“$”在变量名补全后被转义,但如果没有补全,那么它只会响铃。例如

$ ls $JDK_H<tab>
Run Code Online (Sandbox Code Playgroud)

结果是

$ ls \$JDK_HOME (with a trailing space)
Run Code Online (Sandbox Code Playgroud)

在旧的 GNU bash 版本 3.2.51(1)-release (x86_64-suse-linux-gnu) 上,它在完成后没有转义“$”,这正是我想要的。

有没有一种方法可以让旧的行为没有强烈的副作用?我的 BASHOPTS 和 SHELLOPTS 是:

# (indented for readability)
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote
            :force_fignore:histappend:interactive_comments:login_shell
            :progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history
            :interactive-comments:monitor
Run Code Online (Sandbox Code Playgroud)

谢谢。我正在使用 SLES SP11。

- 更新。其他完成似乎照常工作,例如cdecho不转义$. 我也暂时注释掉了/etc/share/bash-completion/bash_completion我的/etc/bash.bashrcwhich,阻止了$逃逸。所以这看起来像是某种完整的配置问题。

bash bash-completion

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

如何在离子中定位多个视图

我正在尝试使用离子框架来构建一个内容菜单,它有两个部分,来自不同的控制器.我已指定他们为view: menuContentview: menuSubcontent下面.

HTML

<ion-side-menus>
    <ion-side-menu-content>
        <ion-nav-bar class="main bar-stable nav-title-slide-ios7">
            <ion-nav-back-button class="button-clear"><i class="icon"></i></ion-nav-back-button>
        </ion-nav-bar>

        <ion-nav-view name="menuContent" animation="slide-left-right"></ion-nav-view>
        <ion-nav-view name="menuSubcontent"></ion-nav-view>

    </ion-side-menu-content>

    <ion-side-menu side="left">
        <header class="bar bar-header bar-stable">
            <h1 class="title">Left</h1>
        </header>
        <ion-content class="has-header">
            <ion-list>
                <ion-item nav-clear menu-close ng-click="login()">
                    Login
                </ion-item>
                <ion-item nav-clear menu-close href="#/app/morestuff">
                    etc.
                </ion-item>
            </ion-list>
        </ion-content>
    </ion-side-menu>
</ion-side-menus>
Run Code Online (Sandbox Code Playgroud)

路由器

.state('app.playlists', {
    url: "/playlists",
    views: {
        'menuContent': {
            templateUrl: "templates/playlists.html",
            controller: 'PlaylistsCtrl'
        },
        'menuSubcontent': {
            template: "<span>subcontent of playlists</span>"
            }
        }
    })
Run Code Online (Sandbox Code Playgroud)

当页面呈现时,<ion-nav-view name="menuSubcontent">虽然它在DOM中,但是不可见.我添加了一些CSS属性以使其可见:

z-index: …
Run Code Online (Sandbox Code Playgroud)

angularjs ionic-framework

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

file.choose() 不会在 setwd() 之后第一次选择当前目录

我首先在我的.Rprofile. 接下来我尝试使用file.choose().

我第一次运行file.choose它时会显示默认目录列表。后续执行显示当前目录。

> getwd()
[1] "C:/Users/dinesh/Desktop/lab/M1/sp500"
> mydata=read.csv(file.choose(),stringsAsFactor=F,header=T)
Error in file.choose() : file choice cancelled <<<<<< wrong dir
> mydata=read.csv(file.choose(),stringsAsFactor=F,header=T)
Error in file.choose() : file choice cancelled <<<<<<<<<<<< right dir
Run Code Online (Sandbox Code Playgroud)

OTOH 如果我在第二个命令中运行,list.files()我会得到正确的列表。再次,第一次调用file.choosewill 的行为出乎意料。

NEXT我再次改变当前目录,以setwd("c:/Users")和尝试list.files(),并file.choose()和获得的结果相同的模式。

为什么它会这样,或者,我错过了什么?我在 Windows 7 上使用 R 3.1.2。

--EDIT 添加了更多细节

来自简介:

if (readline("Wanna pick a new working dir (by choosing a file)? y/xyz: ") == "y") {
  try(setwd(dirname(file.choose())))
}
Run Code Online (Sandbox Code Playgroud)

使用 Rgui …

r

6
推荐指数
0
解决办法
382
查看次数

无法从 Chrome 控制台看到变量,但可以在代码中访问

为什么可以从方法内部而不是从浏览器控制台访问变量?

我有以下打字稿代码,使用 angular6,ng serve在 Windows 10(当前的 Chrome)上运行。

import * as d3 from "d3"; // from "npm i d3 --save" version 5.7
// picking a member of d3, nothing magical about "scaleLinear" here
console.log("see", d3.scaleLinear) // it prints ok, ƒ linear() {...

// angular component code fragment below

somefunction() {
    console.log("see again", d3.scaleLinear) // it prints ok, again
    // add a break here
}
Run Code Online (Sandbox Code Playgroud)

我将代码驱动到某个函数。在休息时,当我尝试在 Chrome 控制台中:

> console.log(d3.scaleLinear)
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误:

VM2012:1 Uncaught ReferenceError: d3 is not defined
    at eval …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-devtools typescript

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