如何将JSON对象附加到列表中?

时间:2016-11-17 17:41:53

标签: python json list append

我正在尝试附加JSON对象以形成JSON对象列表。

def GenIndentifier(options):
    data=json.dumps([identifier,hex_dig])
    return data

此处的数据是一个有效的JSON对象,如下所示:

["27780741708467800000001", "e5073922dbb7a278769d52277d49c6ad3017b1ba"]

之后,我遍历GenIdentifier函数以生成许多JSON对象:

data=[]
for i in range(0,2,1):
    ...
    data.append(GenIndentifier(options))
print data

现在JSON数据列表不是有效的JSON格式,因为弹出了一些单引号:

['["27780741708467800000000", 
"f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"]',
'["27780741708467800000001",       
"e5073922dbb7a278769d52277d49c6ad3017b1ba"]']

知道如何解决这个问题吗? 我搜索并用谷歌搜索但是徒劳无功。

3 个答案:

答案 0 :(得分:2)

麻烦的是您将数据转储到GenIndentifier中的JSON,然后将该JSON字符串附加到列表中。

相反,您应该将JSON转换移出该函数,并在最后执行:

def GenIndentifier(options):
    data = [identifier, hex_dig]
    return data

data = []
for i in range(0, 2, 1):
    ...
    data.append(GenIndentifier(options))
data = json.dumps(data)
print data

答案 1 :(得分:0)

当您调用json.dumps()时,它会将对象(在本例中为2个元素的列表)转换为JSON格式的字符串。然后,您将获取该字符串列表,并将它们附加到列表中。

如果您要查找的是单个JSON格式的列表列表,您可能希望避免在json.dumps()对象中执行GenIdentifier,只需从该函数返回一个列表。然后在最后,您执行print data,而不是print json.dumps(data)

def GenIndentifier(options):
    data=[identifier,hex_dig]
    return data

data=[]
for i in range(0,2,1):
    ...
    data.append(GenIndentifier(options))
data = json.dumps(data)
print data

这将产生以下结果:

[["27780741708467800000000", "f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"],
 ["27780741708467800000001", "e5073922dbb7a278769d52277d49c6ad3017b1ba"]]

答案 2 :(得分:-2)

这有用吗?

data=[]
for i in range(0,2,1):
    ...
    data.append(GenIndentifier(options)[i])
print data
  • 通知我添加了[i],以便在您追加数据之前将其编入索引。