如何在Python中将数字列表转换为jsonarray


76

我有以下格式的行:

row = [1L,[0.1,0.2],[[1234L,1],[134L,2]]]

现在,我要在文件中写入以下内容:

[1,[0.1,0.2],[[1234,1],[134,2]]]

基本上将上面转换成jsonarray?

Python中是否有内置方法,库或函数可将数组“转储”到json数组中?

另请注意,我不希望在文件中序列化“ L”。


10
json.. dump...是的,可能有些东西。
roippi

Answers:


110

使用该json模块生成JSON输出:

import json

with open(outputfilename, 'wb') as outfile:
    json.dump(row, outfile)

这会将JSON结果直接写入文件(如果文件已经存在,则替换任何先前的内容)。

如果您需要Python本身中的JSON结果字符串,请使用json.dumps()s为字符串添加了):

json_string = json.dumps(row)

L只是用于长整数值的Python语法;该json库知道如何处理这些值,不会L写入任何内容。

演示字符串输出:

>>> import json
>>> row = [1L,[0.1,0.2],[[1234L,1],[134L,2]]]
>>> json.dumps(row)
'[1, [0.1, 0.2], [[1234, 1], [134, 2]]]'

1
@ user3226167这是一个Python 2问题;Python 3不再具有两种不同类型的整数对象。
马丁·彼得斯

16
import json
row = [1L,[0.1,0.2],[[1234L,1],[134L,2]]]
row_json = json.dumps(row)

1
转储使用一个对象并产生一个字符串。```>>> import json >>> row = [1,[0.1,0.2],[[1234,1],[134,2]]] >>> type(row)<class'list'>>> >> row_json = json.dumps(row)>>> type(row_json)<class'str'> >>>```
Chirag Maliwal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.