我需要将这个 python dict 转换为二进制 json
d = {'1': 'myval', '2': 'myval2'}
json_binary_str = b'{"1": "myval", "2": "myval2"}'
Run Code Online (Sandbox Code Playgroud)
在 python 3 中,我有这个:
import ujson
ujson.dumps(d)
Run Code Online (Sandbox Code Playgroud)
但是,这不会创建二进制字符串。我怎样才能做到这一点 ?
numpy 数组
x = np.array([1,2,3,4])
Run Code Online (Sandbox Code Playgroud)
ujson.encode
ujson.encode(x, ensure_ascii=False, double_precision=-1)
Run Code Online (Sandbox Code Playgroud)
给我错误
OverflowError: Maximum recursion level reached
Run Code Online (Sandbox Code Playgroud)
版本信息
ujson 1.33
python 3.4.3
Run Code Online (Sandbox Code Playgroud)
似乎 ujson 无法编码 numpy 数组并给出令人困惑的错误消息。
顺便说一下,在哪里可以找到ujson的文档。谢谢
我已经使用命令安装了 ujson pip install ujson
,当我尝试运行我的 python 项目时,它返回 ImportError: No module named ujson
请问有什么帮助吗?
我的函数的返回值类型是OrderedDict,
现在我想在文件上写这个:
这是我的代码:
mainDict = OrderedDict([('a',1),('b',2),('c',3),('d',[4,5,6])])
with open(outFileName, 'w', encoding='utf-8') as outFile :
outFile.write(ujson.dumps(mainDict, indent=4))
Run Code Online (Sandbox Code Playgroud)
我希望它能保持文件中字典的顺序,但它混淆了.
是因为使用ujson.dumps?以及如何OrderedDict在输出文件中保留a的顺序?
我正在尝试使用转义字符解析json字符串(我想某种方式)
{
"publisher": "\"O'Reilly Media, Inc.\""
}
Run Code Online (Sandbox Code Playgroud)
如果我\"从字符串中删除字符,Parser解析得很好,
不同解析器引发的异常是,
JSON
File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 17 column 20 (char 392)
Run Code Online (Sandbox Code Playgroud)
ujson
ValueError: Unexpected character in found when decoding object value
Run Code Online (Sandbox Code Playgroud)
如何让解析器转义这个字符?
这就是我的想法
comma只是意外添加,它在json的末尾没有尾随逗号,json是有效的
字符串定义.
我有一个看起来像这样的JSON文件,我正在尝试对其进行解码,但是没有运气:
[
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
Run Code Online (Sandbox Code Playgroud)
将uJson与Delphi 2007结合使用,我知道当数组具有如下名称时如何提取数据:
{
"Names": [
{
"FirstName": "Kim",
"Surname": "Jensen"
},
{
"FirstName": "Amery",
"Surname": "Mcmillan"
},
{
"FirstName": "Denton",
"Surname": "Burnett"
}
...
]
}
Run Code Online (Sandbox Code Playgroud)
var
json: TJSONObject;
Text: String;
i: Integer;
begin
json := TJSONObject.create(jsontext);
for i:=0 to json.getJSONArray('Names').Length -1 do
begin
Text := json.getJSONArray('Names').getJSONObject(i).optString('FirstName');
...
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是,这个数组没有名字,我已经尝试了几乎所有我能想到的东西,但是这个简单的事情却花了我几个小时才能弄清楚。
ujson ×6
python ×5
json ×4
delphi ×1
delphi-2007 ×1
linux ×1
parsing ×1
python-2.7 ×1
python-3.x ×1
redhat ×1