小编Mar*_*rch的帖子

如何在Python中初始化空列表字典?

我尝试以编程方式创建列表字典是不允许我单独地解决字典键.每当我创建列表字典并尝试附加到一个键时,所有这些都会更新.这是一个非常简单的测试用例:

data = {}
data = data.fromkeys(range(2),[])
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际结果: {0: ['hello'], 1: ['hello']}

预期结果: {0: [], 1: ['hello']}

这是有效的

data = {0:[],1:[]}
data[1].append('hello')
print data
Run Code Online (Sandbox Code Playgroud)

实际和预期结果: {0: [], 1: ['hello']}

为什么fromkeys方法不能按预期工作?

python dictionary list

77
推荐指数
3
解决办法
10万
查看次数

Postgres索引名称在什么级别需要是唯一的?

Microsoft SQL Server和MySQL中,索引名称需要在表中唯一,但不在数据库中.这似乎不是PostgreSQL的情况.

这就是我正在做的事情:我使用CREATE TABLE new_table AS SELECT * FROM old_tableetc 制作了一个表的副本,需要重新创建索引.

CREATE INDEX idx_column_name ON new_table USING GIST(column_name)原因一样运行查询ERROR: relation "idx_column_name" already exists

这里发生了什么?

postgresql indexing

16
推荐指数
2
解决办法
6119
查看次数

如何在python中插入地理配准数据?

我有许多地理参考水文数据线,每周分辨率:

Station name, Lat, Long, Week 1 average, Week 2 average ... Week 52 average

不幸的是,我也有一些只有月度分辨率的数据:

Station name, Lat, Long, January average, February average ... December average

而不是"重新发明轮子",任何人都可以推荐一个最喜欢的模块,包或技术,以提供每月价值的每周价值的合理插值?线性会很好,但如果我们可以使用坐标来改善基于附近站点的插值,那将会很好.

我用python标记了这篇文章,因为它是我最近使用的语言(尽管不是它的统计函数).如果答案是"使用类似的统计程序r",那就这样吧,但我很好奇python的内容是什么.谢谢!

python statistics spatial-interpolation

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

lodash zip函数可以使用数组数组吗?

lodash zip()函数通常接受两个或多个数组作为参数.它可以接受一组数组吗?

例如,给定一个类似的对象var aa = [[1,2,3],[4,5,6]];[[1,4],[2,5],[3,6]]zip()的所需输出必须被调用_.zip(aa[0],aa[1]).对于具有两个以上元素的数组数组,在函数调用中键入索引会变得重复.

通话_.zip(aa)无效.它只是嵌套原始的数组数组.

javascript arrays lodash

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

没有前导零的小数是否有效JSON?

给出JSON文档

{"percentageAmount": .01}
Run Code Online (Sandbox Code Playgroud)

由JSONLint.com运行它会导致错误:

Parse error on line 2:
..."percentageAmount": .01}
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
Run Code Online (Sandbox Code Playgroud)

另一方面,这是有效的:

{"percentageAmount": 0.01}
Run Code Online (Sandbox Code Playgroud)

如果将代码作为JavaScript文字分配给变量,则代码会被正确解析,但当然对于不是JSON规范的JavaScript变量,有很多东西都可以.

为什么这违反了JSON规范?

javascript json

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

使用Python Shapely查找多边形的最大内接矩形

我试图在六个多边形内找到数百万个点.这是我的代码:

def find_shape(longitude,latitude):
    if longitude != 0 and latitude != 0:
        point = shapely.geometry.Point(longitude,latitude)
    else:
        return "Unknown"
    for current_shape in all_shapes:
        if current_shape['bounding_box'].contains(point):
            if current_shape['shape'].contains(point):
                return current_shape['properties']['ShapeName']
                break
    return "Unknown"
Run Code Online (Sandbox Code Playgroud)

我已经阅读了其他一些问题,这些问题涉及改善多边形点查询的性能.他们建议Rtrees.然而,这似乎是当有很多的多边形这是非常有用的情况下(36 000个问题,10万另一个),这是不可取的遍历所有.

正如您所见,我已经设置了一个边界框.这是我的形状设置代码:

with fiona.open(SHAPEFILE) as f_col:
    all_shapes = []
    for shapefile_record in f_col:
        current_shape = {}
        current_shape['shape'] = shapely.geometry.asShape(shapefile_record['geometry'])
        minx, miny, maxx, maxy = current_shape['shape'].bounds
        current_shape['bounding_box'] = shapely.geometry.box(minx, miny, maxx, maxy)
        current_shape['properties'] = shapefile_record['properties']
        all_shapes.append(current_shape)
Run Code Online (Sandbox Code Playgroud)

还要检查另一个非常简化的形状版本,即由最大的内切矩形(或三角形)制成的形状是否有用

检查匀称的文档,它似乎没有这个功能.也许一些设置simplify()?当然,我总是希望确保新的简化形状不会超出原始形状的范围,因此我不必调用contains() …

python gis point-in-polygon shapely

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

MySQL中的“ VARCHAR BINARY”和“ VARBINARY”有什么区别?

我创建了以下测试表:

CREATE TABLE t (
   a VARCHAR(32) BINARY,
   b VARBINARY(32)
);

INSERT INTO t (a, b) VALUES ( 'test    ', 'test    ');
INSERT INTO t (a, b) VALUES ( 'test    \0', 'test    \0');
Run Code Online (Sandbox Code Playgroud)

但是此查询表明两种类型之间没有区别:

SELECT a, LENGTH(a), HEX(a), b, LENGTH(b), HEX(b) FROM t;

a          LENGTH(a)  HEX(a)              b          LENGTH(b)  HEX(b)              
---------  ---------  ------------------  ---------  ---------  --------------------
test               8  7465737420202020    test               8  7465737420202020    
test               9  746573742020202000  test               9  746573742020202000  
Run Code Online (Sandbox Code Playgroud)

mysql collation binary-data

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

Python peewee save()无法按预期工作

我正在使用peewee ORM for Python 将对象插入/更新到MySQL数据库中.我有这样的模型:

class Person(Model):
    person_id = CharField(primary_key=True)
    name = CharField()
Run Code Online (Sandbox Code Playgroud)

我用循环创建对象/行,每次循环都有一个字典,如:

pd = {"name":"Alice","person_id":"A123456"}
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建一个对象并保存它.

po = Person()
for key,value in pd.items():
    setattr(po,key,value)
po.save()
Run Code Online (Sandbox Code Playgroud)

这需要一段时间来执行,并且运行没有错误,但它不会向数据库保存任何内容 - 不会创建任何记录.

这有效:

Person.create(**pd)
Run Code Online (Sandbox Code Playgroud)

但是当主键已经存在时,也会抛出错误(并终止脚本).从阅读手册,我认为save()是我需要的功能 - 小便会根据需要执行更新或插入.

不确定我需要做什么 - 尝试先获取每条记录?如果无法创建记录错误并尝试更新记录?我是peewee的新手,通常只是写作INSERT ... ON DUPLICATE KEY UPDATE甚至是REPLACE.

python mysql upsert peewee

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

重复使用 Handlebars 查找

给定一组对象,我想使用嵌套对象的一个​​属性来查找 Handlebars 中关联对象中的各种属性。

在这个例子中,我想显示每所大学的学生列表,以及每个学生所属部门的信息。

我的代码有效,但嵌套查找非常重复:

{{lookup (lookup ../majors major) 'dean'}}
{{lookup (lookup ../majors major) 'location'}}
Run Code Online (Sandbox Code Playgroud)

我能做些什么吗?我想访问查找的上下文,如下所示:

{{#lookup ../majors major}}
    {{dean}}
    {{location}}
{{/lookup}}
Run Code Online (Sandbox Code Playgroud)

{{lookup (lookup ../majors major) 'dean'}}
{{lookup (lookup ../majors major) 'location'}}
Run Code Online (Sandbox Code Playgroud)
{{#lookup ../majors major}}
    {{dean}}
    {{location}}
{{/lookup}}
Run Code Online (Sandbox Code Playgroud)

javascript template-engine handlebars.js

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

隐藏PHP/MySQL错误消息

我有一个基于X-Cart的网站.它工作正常.但是,当我去地址(手动访问链接)时,www.mysite.com/"Xx<XaXaXXaXaX>xX我收到以下错误消息:

INVALID SQL: 1064:您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在""附近使用正确的语法." ' LIMIT 1' at line 1<br /><b><font color="darkred">SQL QUERY FAILURE:</font></b>SELECT xid FROM xcart_session_history WHERE ip = INET_ATON('165.193.42.141') AND host = '&quot;XxxXx';&quot;,)LIMIT 1
INVALID SQL: 1064:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册正确的语法在';'附近使用,)', 'e8bc1df13aab2c25c7560512a5029eb1')' at line 1<br /><b><font color="darkred">SQL QUERY FAILURE:</font></b>REPLACE INTO xcart_session_history (ip ,host ,xid ) VALUES (INET_ATON('165.193.42.141'), '&quot;XxxXx';&quot;,)','e8bc1df13aab2c25c7560512a5029eb1')

我发现这是我系统上的一个漏洞,因为它揭示了表名和其他细节.

我想让PHP/MYSQL不在屏幕上显示此消息.我该如何禁用它?

php mysql webserver x-cart

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