python3关于往json串指定位置添加重复数据或拼接json解决重复键问题

前言:由于自己post传输json的需要,需要自己往json串中添加数据没想到一个小小的json居然能那么让我头疼
如下(这里只截取部分数据,因为我的json串有点长):
在这里插入图片描述
我想往其中插入数据,结果百度半天,各种转格式,其种最坑的字典格式,大家都知道,字典key唯一,不能重复结果疯狂报错。
还发现了以下方法,能够定位到相应位置,但是由于是字典格式不能重复,放弃了

#以下便是哪个愚蠢的办法,并且只能赋值,遇到列表直接报错,并不能添加数据
data['YML_Contaiers']['ContainerNo']['YML_ContainerTracks']={
                    "Date":"string",
                    "Event":"string",
                    "AtFacility":"string",
                    "ToFacility":"string",
                    "Mode":"string"
                }

我找呀找,真的找不到关于这个问题的答案,气死我了,全都是什么loads,dumps啊,什么的方法,百度真的要凉了??。。。
但是我发现了一个dumps与loads结合的方(zhen)法(xiang)

#这里的json只添加了一个,而且位置是在外面的层级
json_data='{"BLNO": "string","NoOfPackages": "string","GrossCargoWeight": "string","Measurement": "string","LeaveRouting": "string","ReachRouting": "string","ETD": "string","ETA": "string","YML_Contaiers": [{"Id": 0,"ContainerNo": "string","MoveType": "string","Date": "string","LatestEvent": "string","Place": "string","VGM": "string","YML_ContainerTracks": [{"Date": "string","Event": "string","AtFacility": "string","ToFacility": "string","Mode": "string"}]}]}'
new = json.dumps({**json.loads(json_data), **{"YML_ContainerTracks": [{"Date": "string", "Event": "string", "AtFacility": "string", "ToFacility": "string", "Mode": "string"}]}})

这方法可以让数据和它爷爷肩并肩,上生成同一辈分,简直违背伦理道德~那怎么行!!!
在这里插入图片描述
转出字典格式也不行,字符串也不好操作,那咋办呀???我很想和经理说sorry…像朱丹姐一样~~
突然灵机一动,这不是还有列表嘛??美滋滋!枚举是个好东西!!!

json_data='{"BLNO": "string","NoOfPackages": "string","GrossCargoWeight": "string","Measurement": "string","LeaveRouting": "string","ReachRouting": "string","ETD": "string","ETA": "string","YML_Contaiers": [{"Id": 0,"ContainerNo": "string","MoveType": "string","Date": "string","LatestEvent": "string","Place": "string","VGM": "string","YML_ContainerTracks": [{"Date": "string","Event": "string","AtFacility": "string","ToFacility": "string","Mode": "string"}]}]}'
list_i = list(json_data)#把他变成列表格式
#由于我是需要循环往json串指定位置中添加数据,有需要索引做一下判断,使用枚举,枚举真的是个好东西~~~~~
#然后使用列表的insert来指定位置添加重复数据
for index,content in enumerate(contents):
            if index==0:
                list_json.insert(-4,'{"Date": "%s","Event": "%s","AtFacility": "%s","ToFacility": "%s","Mode": "%s"}' % (item['xxtime'], item['Event'], item['At_Facility'], item['To_Facility'],item['Delivery_mode']))
            else:
                list_json.insert(-4,',{"Date": "%s","Event": "%s","AtFacility": "%s","ToFacility": "%s","Mode": "%s"}'%(item['xxtime'],item['Event'],item['At_Facility'], item['To_Facility'],item['Delivery_mode']))
#然后在转换成json格式,就可以了。美滋滋
json.dumps(str_i, ensure_ascii=False)

以下我成功的亚子~但是没开心几分钟。。。。。。。。IP就被封了。。。。。
在这里插入图片描述
还有不明白的,或者有爬虫需求的小伙伴可以给我留言~~嘻嘻嘻。不准转载哟~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值