小编rap*_*ael的帖子

使用"CREATE ... IF NOT EXISTS"时禁止"通知:存在关系"

我有一个函数创建一个临时表来存储和处理数据.问题是我想在单个事务中以1M次的顺序运行此函数,而不需要:

NOTICE:  relation "foo" already exists, skipping
Run Code Online (Sandbox Code Playgroud)

输出~1M次.有没有一种有效的方法呢?

什么是无效的:

  1. 放弃桌子而不是

    DROP TABLE IF EXISTS
    
    Run Code Online (Sandbox Code Playgroud)
    • 导致共享内存耗尽
  2. 捕获duplicate_table异常(效率低于使用IF NOT EXISTS?)

    BEGIN
        CREATE TEMPORARY TABLE foo () ON COMMIT DROP;
    EXCEPTION
        WHEN duplicate_table THEN --do nothing
    END;
    
    Run Code Online (Sandbox Code Playgroud)

postgresql

7
推荐指数
2
解决办法
2859
查看次数

leaflet.draw垃圾按钮删除所有多边形并保存

使用javascript,如何更改leaflet.draw"废纸篓"按钮以删除已绘制并自动保存的所有多边形.下面是我实现的代码,但它是一个完整的黑客.它删除了活动多边形,但是当我在控制台中出现错误时删除一个对象后,当我单击"垃圾桶"图标时NotFoundError: Node was not found,TypeError: this._deletedLayers is null

map.on('draw:editstart', function (e) {
            if(e.handler == 'remove' && typeof drawnItem != 'undefined' && drawnItem !== null){
                if(window.console) window.console.log('Drawing deleted...');
                if(typeof drawnItem != 'undefined' && drawnItem !== null){
                    drawnItems.removeLayer(drawnItem);
                }
                $('.leaflet-draw.leaflet-control .leaflet-draw-actions').hide();
                $('.leaflet-popup-pane .leaflet-draw-tooltip').remove();
            }
        });
Run Code Online (Sandbox Code Playgroud)

javascript leaflet leaflet.draw

6
推荐指数
3
解决办法
3916
查看次数

如何删除leaflet.draw中的绘图层?

使用leaf工具在使用绘图工具在自定义地图上绘制其中一个形状后使用leaflet.js.我有一个弹出的表单,上面写着保存或取消.如果用户按下取消,则我希望删除图形.例如,我正在绘制一个矩形.

这是我目前的来源

map.on('draw:created', function(e) {
    var layer = e.layer;
    var type = e.layerType;

    $("#add-drawing").fadeIn(500);

    featureGroup.addLayer(e.layer); // Adds rectangle

    $("a.cancelD").on("click", function() {
        $("#add-drawing").fadeOut(500);

        // THESE ARE THE METHODS I HAVE TRIED TO REMOVE THE RECTANGLE
        map.removeLayer(layer);
        featureGroup.removeLayer(layer);
        map.removeLayer(e);
        featureGroup.removeLayer(e);
    });     
});
Run Code Online (Sandbox Code Playgroud)

这似乎都不起作用.我可以使用工具箱删除图层,但我不会在我希望提交的表单中提交任何信息.

如何在表单上按取消按钮时删除我绘制的对象?

javascript leaflet leaflet.draw

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

获取zeep.exceptions.ValidationError:缺少使用suds的方法的元素

我移植过,将其与开发的代码suds 0.6过来zeep 2.4.0.

以前的泡沫代码:

client = Client(WSDLfile, proxy=proxy, faults=True)
config = client.factory.create('perUserDataExportConfiguration')
config.param1 = 'something'
...
data = client.service.exportPerUserData(username,password,config)
Run Code Online (Sandbox Code Playgroud)

密码:

session = requests.Session()
session.verify = False
transport = Transport(session=session)
client = Client(WSDLfile, strict=False, transport=transport)
config = client.type_factory('ns0').perUserDataExportConfiguration()
config.param1 = 'something'
...
data = client.service.exportPerUserData(username,password,config)
Run Code Online (Sandbox Code Playgroud)

然后我明白了zeep.exceptions.ValidationError: Missing element param_i_didnt_set.看config.__values__演出

OrderedDict([('param1', 'something'),
             ('param_i_didnt_set', None), ...])
Run Code Online (Sandbox Code Playgroud)

suds config对象的类似之处在于它包含许多带有空变量的键,但suds不会抛出ValidationErrors.

python soap-client suds zeep

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

ggplot的饼图geom_text()标签隐藏了由geom_bar()制作的饼图

我使用聚合(,, FUN = sum)函数构造了以下数据:

    structure(list(Group.1 = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L), .Label = c("Black or African American", "White Alone", 
"White Alone LR"), class = "factor"), Group.2 = structure(c(1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("bus", "mixed", "rail"
), class = "factor"), x = c(75143.5182835844, 198737.537113379, 
46973.6469041183, 46199.2335265697, 128026.568239224, 28933.3028730992, 
75876.5845180076, 495166.957025367, 5909.04640985574), pos = c(37571.7591417922, 
99368.7685566897, 23486.8234520592, 98243.1350468693, 262750.821232991, 
61440.2983406679, 159281.044069158, 574347.583865287, 78861.4729821454
), labe = c(" 75,144", "198,738", " 46,974", " …
Run Code Online (Sandbox Code Playgroud)

label r ggplot2

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

使用 Google API 发送邮件时出错 - “'raw' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息需要”

我正在尝试通过 Python 中的 Google API 发送消息,并尝试运行几乎直接从Google 示例页面获取的示例

def CreateMessage(sender, to, subject, message_text):
    message = MIMEText(message_text)
    message['to'] = to
    message['from'] = sender
    message['subject'] = subject
    return {'raw': base64.urlsafe_b64encode(message.as_string().replace('message','resource').encode('ascii'))}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试发送它时

    message = CreateMessage(sender, to, subject, message_text)
    message = service.users().messages().send(body=list(message),userId='me').execute()
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:“'raw' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息需要”

从其他帖子看来,谷歌似乎在期待一个附件。MIMEText 有什么问题让它期待一个,如果有,我该如何解决?

python-3.x google-api-python-client gmail-api

5
推荐指数
2
解决办法
2055
查看次数

pg_dump自定义数据类型

我正在将选择表从服务器转移到笔记本电脑以在本地工作。由于笔记本电脑空间有限,无法转储整个数据库。一个表的列之一是自定义数据类型,并且在还原时出现以下错误:

pg_restore: [archiver (db)] could not execute query: ERROR: type "custom_data_type" does not exist

有两种方法可以解决此问题,但我在网上找不到以下说明:

  1. 确保表依赖的数据类型包含在pg_dump中
  2. 查找自定义数据类型的创建脚本

postgresql database-backups

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

在自定义leafletjs控件上设置工具提示

我在Leafletjs中制作了几个自定义按钮 - 现在我想添加一个悬停工具提示来解释按钮的功能.我已经尝试在选项中添加"title:"和"tooltip:",但是当我将鼠标悬停在控件上时仍然看不到文本.

var load = L.Control.extend({
    options: {
        position: 'topright'

    },

    onAdd: function(map) {
        var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-load-points');

        //container.style.backgroundColor = 'white';
        container.style.width = '25px';
        container.style.height = '25px';

        container.onclick = function() {
            clear_markers(markers);
            load_markers(markers);
        }
        return container;
    },
});
Run Code Online (Sandbox Code Playgroud)

javascript tooltip leaflet

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

如何为Gmail API正确base64编码MIMEText?

Gmail API的开发者指南中:

以下代码示例演示如何创建MIME消息,对base64url字符串进行编码,并将其分配给Message资源的raw字段:

def create_message(sender, to, subject, message_text):
  """Create a message for an email.

  Args:
    sender: Email address of the sender.
    to: Email address of the receiver.
    subject: The subject of the email message.
    message_text: The text of the email message.

  Returns:
    An object containing a base64url encoded email object.
  """
  message = MIMEText(message_text)
  message['to'] = to
  message['from'] = sender
  message['subject'] = subject
  return {'raw': base64.urlsafe_b64encode(message.as_string())}
Run Code Online (Sandbox Code Playgroud)

但是,如果我做了类似的事情

from email.MIMEText import MIMEText
import base64
message = MIMEText('This is a …
Run Code Online (Sandbox Code Playgroud)

python encoding python-3.x google-api-python-client gmail-api

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

geoJson图层保存[for send DB]在地图上绘制的特征 - Leaflet-Draw

我用过这种方法,但是

var features = [];
map.on('draw:created', function (e) {
  drawnItems.addLayer(e.layer);
  var layers = drawnItems._layers;
  for (var key in layers) features.push(layers[key].toGeoJSON());
  console.log(drawnItems)
});
Run Code Online (Sandbox Code Playgroud)

但控制台日志中出现以下错误:

Object { options: Object, _layers: Object, _initHooksCalled: true, _leaflet_id: 24, _map: Object, _leaflet_events: Object }
Run Code Online (Sandbox Code Playgroud)

当我尝试以下代码时:

        var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            osmAttrib = '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
            osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib}),
            map = new L.Map('map', {layers: [osm], center: new L.LatLng(-37.7772, 175.2756), zoom: 15 });

        var drawnItems = L.geoJson();
        map.addLayer(drawnItems);

        var drawControl = new …
Run Code Online (Sandbox Code Playgroud)

javascript json leaflet leaflet.draw

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