我有两个从api url得到的字符串。
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库
发布于 2011-03-10 17:27:25
这些不是字符串,而是字典。您可以像这样组合这些字典:
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)发布于 2011-03-10 17:27:54
这就是了:
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)https://stackoverflow.com/questions/5257582
复制相似问题