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