小编gri*_*rno的帖子

在 Python 中将 dict 转换为 json 时转义双引号

在 Python 中将 dict 转换为 json 时,我需要转义双引号,但我很难弄清楚如何转义。

因此,如果我有一个像 这样的字典{'foo': 'bar'},我想将其转换为 json 并转义双引号 - 所以它看起来像:

'{\"foo\":\"bar\"}'

json.dumps不这样做,我尝试过类似的事情:

json.dumps({'foo': 'bar'}).replace('"', '\\"')最终格式化如下:

'{\\"foo\\": \\"bar\\"}'

这似乎是一个很容易解决的问题,但我真的很挣扎。

python json

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

迭代 PyMongo 游标抛出 InvalidBSON:年份超出范围

我正在使用 PyMongo 来简单地迭代 Mongo 集合,但我正在努力处理大型 Mongodb 日期对象。

例如,如果我的集合中有一些数据,如下所示:

"bad_data" : [ 
            {
                "id" : "id01",
                "label" : "bad_data",
                "value" : "exist",
                "type" : "String",
                "lastModified" : ISODate("2018-06-01T10:04:35.000Z"),
                "expires" : Date(9223372036854775000)
            }
        ]
Run Code Online (Sandbox Code Playgroud)

我会做这样的事情:

from pymongo import MongoClient, database, cursor, collection
client = MongoClient('localhost')
db = client['db1']
db.authenticate('user', 'pass', source='admin')
collection = db['collection']
for i in collection:
    # do something with i
Run Code Online (Sandbox Code Playgroud)

并得到错误 InvalidBSON: year 292278994 is out of range

有什么办法可以在Date()不让 bson 摔倒的情况下处理这个可笑的对象吗?我意识到在 Mongodb 中有这样一个约会很疯狂,但我对此无能为力,因为它不是我的数据。

python mongodb pymongo mongodb-query

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

在盐状态中使用 mine.get 进行解释

有人可以给我一个白痴解释以下是如何工作的:

{% for server, addrs in salt['mine.get']('roles:web', 'network.ip_addrs', expr_form='grain') | dictsort() %}
server {{ server }} {{ addrs[0] }}:80 check
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

支柱文件如下所示:

mine_functions:
  network.ip_addrs: [eth0]
Run Code Online (Sandbox Code Playgroud)

盐分配给前两个值是什么,server以及addrs?你会如何在上面使用多个地雷选项?即,如果您的 pillar 文件有一个额外的 mine 功能,如下所示:

mine_functions:
     network.ip_addrs: [eth0]
      role:
        - mine_function: grains.get
        - role
Run Code Online (Sandbox Code Playgroud)

那么如何访问第一个代码片段中的角色函数?

希望这是有道理的

salt-stack

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

标签 统计

python ×2

json ×1

mongodb ×1

mongodb-query ×1

pymongo ×1

salt-stack ×1