需要从 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('"')
它遍历列表中的每个元素并从中删除引号。然后将剥离的字符串分配给列表的正确索引。
我是 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('"')
它遍历列表中的每个元素并从中删除引号。然后将剥离的字符串分配给列表的正确索引。