需要从python中的json集合中删除撇号

时间:2018-04-05 13:28:07

标签: python json python-3.5

我是python代码的新手。

目前我可以从键值对创建json。 现在jsonRow有几个字段,如下面

jsonRow = json.dumps(行)

{"abc": "SDT", "RIC": "SFOpmM5", "currency": "TN", "source": "xyz", "desc": "FUEL OIL JUN15", "maturityDate": "02-Jun-2015", "symbol": "1283968", "contractMultiplier": "100.000000", "securityType": "ijk"}

我继续使用不同的值来获得json。

我想将所有json添加到某个集合中 目前我使用下面的变量来拥有所有的json。我不知道这是否正确

顶部= []

现在我正在使用 top.append(jsonRow),它将全部添加到此变量中。

问题是,它正在添加所有内容''它不是json的集合。我也试过列表,但同样的问题。如果我将此服务作为json的集合传递给REST服务,则会出现错误 TypeError:需要类似字节的对象,

输出

['{"abc": "SDT", "RIC": "SFOpmM5", "currency": "TN", "source": "xyz", "desc": "FUEL OIL JUN15", "maturityDate": "02-Jun-2015", "symbol": "1283968", "contractMultiplier": "100.000000", "securityType": "ijk"}','{"abc": "SDT", "RIC": "SFOpmM5", "currency": "TN", "source": "xyz", "desc": "FUEL OIL JUN15", "maturityDate": "02-Jun-2015", "symbol": "1283968", "contractMultiplier": "100.000000", "securityType": "ijk"}']

我不想要['{}','{}','{}'] 我想要[{},{},{}]以便我可以转到我的REST呼叫

3 个答案:

答案 0 :(得分:0)

不要将JSON放入列表,而是放入原始字典,然后转换为JSON:

>>> row  # the original dict
{'abc': 'SDT',
 'RIC': 'SFOpmM5',
 'securityType': 'ijk',
 'currency': 'TN',
 'contractMultiplier': '100.000000',
 'maturityDate': '02-Jun-2015',
 'symbol': '1283968',
 'source': 'xyz',
 'desc': 'FUEL OIL JUN15'}
>>> top = [row]  # possibly more entries, or use `append`
>>> json.dumps(top)
'[{"abc": "SDT", "RIC": "SFOpmM5", "securityType": "ijk", "currency": "TN", "contractMultiplier": "100.000000", "maturityDate": "02-Jun-2015", "symbol": "1283968", "source": "xyz", "desc": "FUEL OIL JUN15"}]'

答案 1 :(得分:0)

data = ['{**"abc": "SDT", "RIC": "SFOpmM5", "currency": "TN", "source": "xyz", "desc": "FUEL OIL JUN15", "maturityDate": "02-Jun-2015", "symbol": "1283968", "contractMultiplier": "100.000000", "securityType": "ijk"**}','{**"abc": "SDT", "RIC": "SFOpmM5", "currency": "TN", "source": "xyz", "desc": "FUEL OIL JUN15", "maturityDate": "02-Jun-2015", "symbol": "1283968", "contractMultiplier": "100.000000", "securityType": "ijk"**}']
import json
json_ = [json.loads(val.replace("**",'')) for val in data]
print(json_)
>>>[{'RIC': 'SFOpmM5',
  'abc': 'SDT',
  'contractMultiplier': '100.000000',
  'currency': 'TN',
  'desc': 'FUEL OIL JUN15',
  'maturityDate': '02-Jun-2015',
  'securityType': 'ijk',
  'source': 'xyz',
  'symbol': '1283968'},
 {'RIC': 'SFOpmM5',
  'abc': 'SDT',
  'contractMultiplier': '100.000000',
  'currency': 'TN',
  'desc': 'FUEL OIL JUN15',
  'maturityDate': '02-Jun-2015',
  'securityType': 'ijk',
  'source': 'xyz',
  'symbol': '1283968'}]

答案 2 :(得分:0)

如果您拥有的是字符串列表,那么以下解决方案将起作用:

for i, item in enumerate(listofitems):
    listofitems[i] = item.strip('"')

它遍历列表中的每个元素并从中删除引号。然后将剥离的字符串分配给列表的正确索引。