Python - 将字符串转换为JSON并合并

0 投票
2 回答
4780 浏览
提问于 2025-04-16 13:25

我从一个API网址获取了两个字符串。

pagehandle = urllib2.urlopen(ariel_url+"?%s"  % params1)
data1 = pagehandle.read(); 
pagehandle = urllib2.urlopen(ariel_url+"?%s"  % params2)
data2 = pagehandle.read(); 

data1和data2包含以下内容:string

{"priority":"HIGH", "titles":["Brand", "Likes"], "values":[["addidas", 130],["nike", 180]]}

{"priority":"HIGH", "titles":["Brand", "Likes"], "values":[["iphone", 49],["ipod", 590]]}

我想把这两个字符串转换成JSON格式,并且合并在一起(或者先合并字符串再转换),希望输出的JSON看起来像这样:

{"priority":"HIGH", "titles":["Brand", "Likes"], "values":[["addidas", 130],["nike", 180],["iphone", 49],["ipod", 590]]]}

我该怎么做呢?我更喜欢使用simplejson库。

2 个回答

3

这是你要的内容:

import json
a = json.loads('{"priority":"HIGH", "titles":["Brand", "Likes"], "values":[["addidas", 130],["nike", 180]]}')
b = json.loads('{"priority":"HIGH", "titles":["Brand", "Likes"], "values":[["iphone", 49],["ipod", 590]]}')

for value in a['values']:
   b['values'].append(value)

# edited
json.dumps(b)
3

这些不是字符串,而是字典。你可以像这样合并这些字典:

def combine(dict1, dict2):
    if dict1['priority'] == dict2['priority'] and dict1['titles'] == dict2['titles']:
        return {
            'priority': dict1['priority'],
            'titles': dict1['titles'],
            'values': dict1['values'] + dict2['values']
        }

之后你只需运行:

import json
json.dumps(combine(dict1, dict2))

这样你就会得到这两个合并后的字典的json格式。

编辑

所以我明白你实际上得到了:

s1 = '{"priority":"HIGH", "titles":["Brand", "Likes"], values:[["addidas", 130],["nike", 180]]}'

s2 = '{"priority":"HIGH", "titles":["Brand", "Likes"], values:[["iphone", 49],["ipod", 590]]}'

在这种情况下,你可以运行:

dict1 = json.loads(s1)
dict2 = json.loads(s2)
result = combine(dict1, dict2)

撰写回答