python 如何合并两个 json 文件

2015-02-10 23:41:46 +08:00
 wico77

RT
不是合并两个普通文件。是json文件,合并后成为一个大的json文件

19147 次点击
所在节点    Python
13 条回复
kslr
2015-02-10 23:54:48 +08:00
Load dict
Kilerd
2015-02-11 00:23:15 +08:00
先转成两个dict,然后合并,再转成json
ricorico
2015-02-11 00:30:48 +08:00
先 read,然后 json.loads,之后调用 dict 的 update 方法合并?
要考虑有没有相同的 key,不知道具体要求…
wico77
2015-02-11 00:39:30 +08:00
@ricorico
import glob
import json

files = glob.glob('*.json')
result = []
for file in files:
f = open(file,'r')
a = json.load(f)
for b in a:
result.append(b)

print len(result)

outfile = json.dumps(result)

这样对吗
NeoAtlantis
2015-02-11 00:40:53 +08:00
怎么合并……json不一定是dict的形式,也可以一开始就是list呢,也可以就是字符串或者Boolean或者数字呢……看你要求了,不过一般来说用json那个库应该能搞定。
NeoAtlantis
2015-02-11 00:43:22 +08:00


以上都是合法的json内容
icedx
2015-02-11 00:43:45 +08:00
@ricorico 正解
Septembers
2015-02-11 03:56:42 +08:00
import json
json.dump(open('target.json'), [json.load(open('source1.json')), json.load(open('source2.json'))])
Septembers
2015-02-11 03:57:33 +08:00
import json
json.dump([json.load(open('source1.json')), json.load(open('source2.json'))], open('target.json'))
invite
2015-02-11 09:22:42 +08:00
要哪种合并?有一种合并是这样的:
两个文件a和b,内容为 A 和 B,那么合并后:

{'a': A , 'b': B}

多快好省,哈哈。
leiz
2015-02-11 09:43:52 +08:00
完全没有上下文的问题为什么会有这么多人回答?
fanta
2015-02-11 10:04:25 +08:00
import ast
ast.literal_eval(json)
wico77
2015-02-11 17:13:46 +08:00
@Septembers 这个就是我想要的。谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169978

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX