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

Python 如何将JSON对象附加到列表中?,python,json,list,append,Python,Json,List,Append,我试图附加JSON对象以形成JSON对象列表 def GenIndentifier(options): data=json.dumps([identifier,hex_dig]) return data 这里的数据是一个有效的JSON对象,如下所示: [“27780741170846780000001”,“e5073922dbb7a278769d52277d49c6ad3017b1ba”] 之后,我循环使用GenIdentifier函数生成许多JSON对象: data=[] f

我试图附加JSON对象以形成JSON对象列表

def GenIndentifier(options):
    data=json.dumps([identifier,hex_dig])
    return data
这里的数据是一个有效的JSON对象,如下所示:

[“27780741170846780000001”,“e5073922dbb7a278769d52277d49c6ad3017b1ba”]

之后,我循环使用GenIdentifier函数生成许多JSON对象:

data=[]
for i in range(0,2,1):
    ...
    data.append(GenIndentifier(options))
print data
现在,JSON数据列表不是有效的JSON格式,因为会弹出一些单引号:

['["27780741708467800000000", 
"f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"]',
'["27780741708467800000001",       
"e5073922dbb7a278769d52277d49c6ad3017b1ba"]']
你知道怎么解决吗? 我已经搜索和谷歌搜索过了,但都是徒劳的。

这有用吗

data=[]
for i in range(0,2,1):
    ...
    data.append(GenIndentifier(options)[i])
print data
  • 请注意,我添加了[I],以便在附加数据之前将其索引到数据中

    • 问题在于,您正在将数据转储到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
      

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

      如果您要查找的是一个JSON格式的列表列表,那么您应该避免在
      GenIdentifier
      对象中执行
      JSON.dumps()
      ,只需从该函数返回一个列表即可。然后在最后,您执行
      打印数据
      ,而不是执行
      打印json.dumps(数据)

      这将导致以下情况:

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

      这似乎不是JSON数据。您正在使用的是简单的列表。JSON通常遵循键值格式。@PrateekDewan胡说八道。原始值是完全有效的JSON。我会让你决定…这说明数组是有效的JSON。。很公平。现在,您正在索引到
      append
      的返回值,它是
      None
      。有@jojonas可以修复它,我将[I]移到括号中,因为它应该是建议的索引:有输出“[[2778074170846780000000”,“f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d”[“27780774170846780000001”,“e5073922dbb7a278769d52277d49c6ad3017b1ba”]“一个有效的JSON,但有两个额外的单引号,对我来说是有效的。单引号只是表明整个东西是一个字符串,当然?谢谢你的建议:有输出”[[“277807170846780000000”,“F798D2CD9EC1B98FB48B34FD249FE19C06A4A1D”],[”27780774170846780000001,“E507392DBB7A278769D52277D49C6AD3017B1BA”]“一个有效的JSON,但有两个额外的单引号单引号单引号单引号来自以下事实:
      JSON.dumps
      返回字符串,当您打印字符串对象时,它被包装在单引号中。若要修复此问题,只需更改打印行。
      print”%s“%data
      应不带单引号打印。
      [["27780741708467800000000", "f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"],
       ["27780741708467800000001", "e5073922dbb7a278769d52277d49c6ad3017b1ba"]]