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

Need to remove apostrophe from json collection in python

我是 python 代码的新手。

目前我可以从键值对创建 json。 现在 json行有几个像下面这样的字段

json行=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 的集合。我也试过 list 但同样的问题。如果我将其作为 json 的集合传递给 REST 服务,则会出现错误 TypeError: a bytes-like object is required,

输出

['{"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 调用

不要将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"}]'
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'}]

如果您拥有的是字符串列表,则以下解决方案可行:

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

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