我有一个词典列表:
[
{
'_item_id1':'0002',
'_ticket_quantity1':1,
'_showtime_id':5635775
},
{
'_item_id2':'0001',
'_ticket_quantity2':1,
'_showtime_id':5635775
}
]
我希望以这种格式json.dumps()
:
data = json.dumps({
'ticketTypes': [{
'showtimeId': showtime_id,
'id': item_id1,
'quantity': ticket_quantity1
},
{
'showtimeId': showtime_id,
'id': item_id2,
'quantity': ticket_quantity2
}]
})
答案 0 :(得分:0)
您可以使用list comprehension有效地构建所需的数据结构,然后将其转储:
import json
input_data = [
{
'_item_id1':'0002',
'_ticket_quantity1':1,
'_showtime_id':5635775
},
{
'_item_id2':'0001',
'_ticket_quantity2':1,
'_showtime_id':5635775
}
]
json_data = [{
'showtimeId': '_showtime_id',
'id': d['_item_id%s' % i],
'quantity': d['_ticket_quantity%s' % i],
} for i, d in enumerate(input_data, start=1)]
print(json.dumps({
'ticketTypes': json_data
}))
答案 1 :(得分:0)
您要求的更多的是"翻译"或"转换"信息
但为什么你的数据是
" _showtime_id" < ---很好!这可能是身份吗?
" _item_id1" < --- 2?删除2?
所有这些数据都是列表数据类型,因此不需要额外的1或2 如果你删除它,那么你可以使用以下
def convert2_Dict(data):
ticketTypes = []
for ticket in data:
item_id = ticket[_item_id]
ticket_quantity = ticket[_quantity]
showtime_id = ticket[_showtime_id]
ticketTypes.append([{"item_id":item_id}, \
{"ticket_quantity":ticket_quantity}, \
{"showtime_id":showtime_id}] )
return ticketTypes
否则,它会变得有点混乱
def convert_Dict(data):
ticketTypes = []
for ticket in data:
for key,value in ticket.iteritems():
if key.find("_item_id"): #now have to find the "string"
item_id = ticket[_item_id]
elif key.find("_ticket_quantity"):
ticket_quantity = ticket[_quantity]
elif key.find("_showtime_id")
showtime_id = ticket[_showtime_id]
ticketTypes.append([{"item_id":item_id}, \
{"ticket_quantity":ticket_quantity}, \
{"showtime_id":showtime_id}] )
return ticketTypes