使用Python在JSON中编写列表对象

时间:2016-04-04 14:53:18

标签: python json python-2.7

我正在尝试从我的python(2.7)脚本输出以下JSON:

[
  {
    "id": "1002-00001",
    "name": "Name 1"
  },
  {
    "id": "1002-00002",
    "display": "Name 2"
  },
]

使用json.dumps时,Python中的哪些数据结构会输出? 最外面的项是python列表,但列表中的项目类型应该是什么?它看起来像没有键的字典?

1 个答案:

答案 0 :(得分:0)

希望这澄清了评论中的注释,这些注释对您来说并不清楚。它是通过将(在这种情况下很小的)字典附加到列表中来实现的。

import json

#Added an extra entry with an integer type. Doesn't have to be string.
full_list = [['1002-00001', 'Name 1'],
            ['1002-00002', 'Name 2'],
            ['1002-00003', 2]]

output_list = []            
for item in full_list:
    sub_dict = {}
    sub_dict['id'] = item[0] # key-value pair defined
    sub_dict['name'] = item[1]
    output_list.append(sub_dict) # Just put the mini dictionary into a list

# See Python data structure
print output_list

# Specifically using json.dumps as requested in question.
# Automatically adds double quotes to strings for json formatting in printed 
# output but keeps ints (unquoted)
json_object = json.dumps(output_list)
print json_object 

# Writing to a file
with open('SO_jsonout.json', 'w') as outfile:
    json.dump(output_list, outfile)

# What I think you are confused about with the "keys" is achieved with an 
# outer dictionary (but isn't necessary to make a valid data structure, just
# one that you might be more used to seeing)
outer_dict = {}
outer_dict['so_called_missing_key'] = output_list
print outer_dict