在 Python 中将 dict 转换为 json 时,我需要转义双引号,但我很难弄清楚如何转义。
因此,如果我有一个像 这样的字典{'foo': 'bar'},我想将其转换为 json 并转义双引号 - 所以它看起来像:
'{\"foo\":\"bar\"}'
json.dumps不这样做,我尝试过类似的事情:
json.dumps({'foo': 'bar'}).replace('"', '\\"')最终格式化如下:
'{\\"foo\\": \\"bar\\"}'
这似乎是一个很容易解决的问题,但我真的很挣扎。
我正在使用 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 中有这样一个约会很疯狂,但我对此无能为力,因为它不是我的数据。
有人可以给我一个白痴解释以下是如何工作的:
{% 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)
那么如何访问第一个代码片段中的角色函数?
希望这是有道理的