【问题标题】:How to convert a list of numbers to jsonarray in Python如何在 Python 中将数字列表转换为 jsonarray
【发布时间】:2013-11-16 16:22:49
【问题描述】:

我有以下格式的一行:

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

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

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

上面基本转换成jsonarray?

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

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

【问题讨论】:

  • json.. dump... 是的,可能有什么。

标签: python json


【解决方案1】:

使用json module 生成 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]]]'

【讨论】:

  • @user3226167 这是一个 Python 2 问题; Python 3 不再有这两种不同类型的整数对象了。
【解决方案2】:
import json
row = [1L,[0.1,0.2],[[1234L,1],[134L,2]]]
row_json = json.dumps(row)

【讨论】:

  • dumps 获取一个对象并生成一个字符串。 ``` >>> import json >>> row = [1,[0.1,0.2],[[1234,1],[134,2]]] >>> type(row) > >> row_json = json.dumps(row) >>> type(row_json) >>> ``
猜你喜欢
  • 1970-01-01
  • 2021-02-01
  • 2012-09-24
  • 2016-06-10
  • 1970-01-01
  • 2012-04-28
  • 2017-03-14
  • 2020-11-02
  • 2015-05-17
相关资源
最近更新 更多