小编fis*_*cks的帖子

PostgreSQL无法在标量上调用json_object_keys

我有一个带有JSON列的PostgreSQL表,我正在尝试获取该列中所有不同键的列表.我创建了一个查询来执行此操作:

SELECT DISTINCT json_object_keys(j) FROM t;
Run Code Online (Sandbox Code Playgroud)

t表在哪里,j是JSON列.这正确地处理了一小组数据,它将列出存在的所有密钥j,而不重复它们.但是,在添加了更多数据后,它不再起作用,给出错误:

ERROR:  cannot call json_object_keys on a scalar
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会发生这种情况.通过一次一个地限制查询到某些行,我发现了一个导致错误的行.在那一排,jnull.但是,在调用时,调用SELECT json_object_keys(null);不会导致此错误SELECT json_object_keys(j) FROM t WHERE id=12;,并且j在此行中只是null.我不确定从哪里开始.

所以我想我的问题是可能导致这种情况的原因,我怎么能解决它或阻止它发生?

运行PostgreSQL 9.3.9

编辑:好的,我可能已经预先发布了这一点.我发现j在有问题的行中没有null,这是'null'::json,仅仅选择行就不清楚了.这确实令标量误差,所以现在我只需要找出一种方法来选择行,其中j是不是'null'::json.

postgresql json

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

Google Calendar API,RRULE和EXDATE

我正在尝试使用API​​将一些事件导出到Google Calendar,特别是包装它的python库.这些事件有重复发生,它是使用RRULE字符串定义到Google日历的,我试图用EXDATE字符串排除某些日期.

这是我发送的内容:

{
    "summary": "Test Event", 
    "description": "Event", 
    "location": "Home", 
    "start": {
        "timeZone": "America/New_York", 
        "dateTime": "2014-09-05T10:30:00"
    }, 
    "end": {
        "timeZone": "America/New_York", 
        "dateTime": "2014-09-05T11:35:00"
    }, 
    "recurrence": [
        "RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=FR;UNTIL=20141203T173500Z", 
        "EXDATE:20141002"
    ], 
}
Run Code Online (Sandbox Code Playgroud)

它正确导出,除了EXDATE不受尊重.嗯,这有点受人尊敬.在日历中,该事件仍然存在,但它将重复描述为"周一,周三,周四从9月3日星期三到12月3日星期四上午10:30周刊,除了10月2日星期四".

"除了Thu Oct 2"部分意味着它正在正确地解析EXDATE(如果我在EXDATE中发送垃圾,它将不会运行,因此它正在解析它),但事件仍然发生.

google-calendar-api rrule

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

标签 统计

google-calendar-api ×1

json ×1

postgresql ×1

rrule ×1