小编cal*_*shy的帖子

将Python namedtuple序列化为json

namedtuple保留字段名称的情况下序列化到json 的推荐方法是什么?

将a namedtuple序列化为json只会导致序列化的值和字段名称在翻译中丢失.我想在json化时保留字段,因此做了以下事情:

class foobar(namedtuple('f', 'foo, bar')):
    __slots__ = ()
    def __iter__(self):
        yield self._asdict()
Run Code Online (Sandbox Code Playgroud)

上面按照我的预期序列化到json,并且namedtuple在我使用的其他地方行为(属性访问等),除了在迭代它时使用非元组结果(这对我的用例来说很好).

在保留字段名称的情况下转换为json的"正确方法"是什么?

python json namedtuple

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

sed:替换部分行

如何用sed替换一部分线?

这条线

DBSERVERNAME     xxx
Run Code Online (Sandbox Code Playgroud)

应该替换为:

DBSERVERNAME     yyy
Run Code Online (Sandbox Code Playgroud)

值xxx可以变化,dbservername和值之间有两个选项卡.此名称 - 值对是配置文件中的众多名称 - 值对之一.

我尝试了以下反向引用:

echo "DBSERVERNAME    xxx" | sed -rne 's/\(dbservername\)[[:blank:]]+\([[:alpha:]]+\)/\1 yyy/gip'
Run Code Online (Sandbox Code Playgroud)

这导致了一个错误:`s'命令的RHS上的引用\ 1无效.

这个表达方式有什么问题?使用GNU sed.

sed

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

使用Sed的不同分隔符删除

相当肯定我错过了一些明显的东西!

$ cat test.txt
  00 30 * * * /opt/timebomb.sh >> timebomb.log
  01 30 * * * /opt/reincarnate.sh >> reincarnation.log
$ sed ':timebomb:d' test.txt
  00 30 * * * /opt/timebomb.sh >> timebomb.log
  01 30 * * * /opt/reincarnate.sh >> reincarnation.log
Run Code Online (Sandbox Code Playgroud)

$ sed '/timebomb/d' test.txt
  01 30 * * * /opt/reincarnate.sh >> reincarnation.log
Run Code Online (Sandbox Code Playgroud)

为什么会这样?d命令不支持一组不同的分隔符吗?

sed

25
推荐指数
1
解决办法
8817
查看次数

将输出重定向到bash数组

我有一个包含字符串的文件

ipAddress=10.78.90.137;10.78.90.149
Run Code Online (Sandbox Code Playgroud)

我想将这两个IP地址放在一个bash数组中.为此,我尝试了以下方法:

n=$(grep -i ipaddress /opt/ipfile |  cut -d'=' -f2 | tr ';' ' ')
Run Code Online (Sandbox Code Playgroud)

这导致提取值正常,但由于某种原因,数组的大小返回为1,我注意到这两个值都被标识为数组中的第一个元素.那是

echo ${n[0]}
Run Code Online (Sandbox Code Playgroud)

回报

10.78.90.137 10.78.90.149
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

谢谢您的帮助!

bash shell redirect

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

Ansible:任务名称中的变量插值

我无法在Ansible 1.8.3中使用这个看似简单的例子.变量插值不会引入任务名称.我看到的所有例子似乎都表明这应该有效.鉴于变量是在vars部分中定义的,我期望任务名称打印变量的值.为什么这不起作用?

即使Ansible 文档中的示例似乎也不打印变量值.

---
- hosts: 127.0.0.1
  gather_facts: no
  vars:
    vhost: "foo"
  tasks:
    - name: create a virtual host file for {{ vhost }}
      debug: msg="{{ vhost }}"
Run Code Online (Sandbox Code Playgroud)

这导致以下输出:

PLAY [127.0.0.1]     
************************************************************** 

TASK: [create a virtual host file for {{ vhost }}] 
**************************** 
ok: [127.0.0.1] => {
   "msg": "foo"
}

PLAY RECAP 
******************************************************************** 
127.0.0.1                  : ok=1    changed=0    unreachable=0    failed=0   
Run Code Online (Sandbox Code Playgroud)

更新 适用于1.7.2,但不适用于1.8.3.所以这是一个错误或功能.

ansible ansible-playbook

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

emacs:更改矩形的大小写

改变矩形的最简单方法是什么?

手册中提到的任何捷径都没有谈到这一点.我是否必须添加自定义绑定才能执行此操作?虽然我们在这里,但我如何只在矩形内搜索?

emacs

10
推荐指数
2
解决办法
2616
查看次数

用于HSQLDB的Hibernate @generatedvalue

我对映射到HSQLDB中的表的实体中的id字段有以下定义.

...
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")
private Integer id;
...
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有产生一个独特的身份; 而是尝试将null插入到列中,从而导致失败.如果,我手动创建序列和生成策略以使用该序列,那么数据将按预期保持.

auto的生成策略是否意味着提供者(在这种情况下是hibernate)会自动选择正确的方法并根据需要执行所有繁重的操作(创建序列,使用本机方法或适用于该特定平台的任何方法)?我的理解不正确吗?

java orm hibernate jpa hsqldb

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

Informix 中的 group_concat

在 Informix 的 SQL 中寻找一个模拟 MySQLgroup_concat功能的查询。

MySQL 的group_concat作用是创建组中所有成员的枚举。

因此数据如下:

订单号 项目名 价格
1 10
1 5
2 15

以及以下查询:

select group_concat(itemName), sum(price)
from order_details
group by orderid
Run Code Online (Sandbox Code Playgroud)

会产生:

项目 价格
纸、笔 15
15

在 Informix 中实现这一目标的最有效方法是什么?我们一定要使用存储过程吗?

sql informix

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

分析查询

我正在寻找可以转换表中的以下信息的单个查询

name:time    :state
a   :10:00 AM:login
b   :10:05 AM:login
a   :10:06 AM:chatting
a   :10:08 AM:Idle
b   :10:11 AM:chatting
a   :10:10 AM:Logout
b   :10:12 AM:Logout
Run Code Online (Sandbox Code Playgroud)

这样的事情(给定时间范围从上午10点到上午10:15作为查询期)

name: State    :Duration
a   : chatting :2 Minutes 
a   : Idle     :2 Minutes
b   : chatting :1 Minute
Run Code Online (Sandbox Code Playgroud)

这可以仅使用SQL来完成吗?我使用Informix版本11.5

sql informix

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

标签 统计

informix ×2

sed ×2

sql ×2

ansible ×1

ansible-playbook ×1

bash ×1

emacs ×1

hibernate ×1

hsqldb ×1

java ×1

jpa ×1

json ×1

namedtuple ×1

orm ×1

python ×1

redirect ×1

shell ×1