将列表转换为json对象

ahm*_*has 4 python arrays json

我有一个巨大的文本文件.

line 1
line 2
line 3
...
Run Code Online (Sandbox Code Playgroud)

我已将其转换为列表数组:

[['String 1'],['String 2'],['String 3'],['String 4'],['String 5'],
['String 6'],['String 7'],['String 8'],['String 9'],['String 9'],
['String 10'], ...]
Run Code Online (Sandbox Code Playgroud)

我想将此列表转换为JSON对象,如下所示:

[{'title1': 'String 1', 'title2': 'String 2', ... , 'title7': 'String 7'},
 {'title1': 'String 8', ..., 'title7': 'String 14'}, ...]
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做.任何帮助.?

ngr*_*ves 6

只需添加到alexce的响应,您就可以轻松地将重构的数据转换为JSON:

import json
json.dumps(result)
Run Code Online (Sandbox Code Playgroud)

顶级阵列存在一些潜在的安全问题.我不确定它们是否仍适用于现代浏览器,但您可能需要考虑将其包装在对象中.

import json
json.dumps({'results': result})
Run Code Online (Sandbox Code Playgroud)


ale*_*cxe 4

为了解决这个问题,您需要将输入列表拆分为 chunk,在您的情况下按 7 拆分。为此,我们使用这种方法。然后,使用列表理解生成字典列表:

>>> from pprint import pprint
>>> l = [['String 1'],['String 2'],['String 3'],['String 4'],['String 5'],
... ['String 6'],['String 7'],['String 8'],['String 9'],['String 10'],
... ['String 11']]
>>> def chunks(l, n):
...     """Yield successive n-sized chunks from l."""
...     for i in range(0, len(l), n):
...         yield l[i:i+n]
... 
>>>
>>> result = [{"title%d" % (i+1): chunk[i][0] for i in range(len(chunk))} 
              for chunk in chunks(l, 7)]
>>> pprint(result)
[{'title1': 'String 1',
  'title2': 'String 2',
  'title3': 'String 3',
  'title4': 'String 4',
  'title5': 'String 5',
  'title6': 'String 6',
  'title7': 'String 7'},
 {'title1': 'String 8',
  'title2': 'String 9',
  'title3': 'String 10',
  'title4': 'String 11'}]
Run Code Online (Sandbox Code Playgroud)