python的每个Json文件的连接/合并

时间:2018-06-27 06:59:49

标签: python json python-3.x

我有多个Json文件,我想合并/合并并制作一个Json文件。 下面的代码使我出错

def merge_JsonFiles(*filename):
    result = []
    for f1 in filename:
        with open(f1, 'rb') as infile:
            result.append(json.load(infile))

    with open('Mergedjson.json', 'wb') as output_file:
        json.dump(result, output_file)

    # in this next line of code, I want to load that Merged Json files
    #so that I can parse it to proper format
    with open('Mergedjson.json', 'rU') as f:
        d = json.load(f)

下面是我输入的json文件的代码

if __name__ == '__main__':
        allFiles = []
        while(True):
            inputExtraFiles = input('Enter your other file names. To Ignore    this, Press Enter!: ')
            if inputExtraFiles =='':
                break
            else:
                allFiles.append(inputExtraFiles)
        merge_JsonFiles(allFiles)

但是它给我抛出了一个错误

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

此外,我想确保如果从控制台仅获取一个输入文件,则json的合并不应引发错误。

任何帮助,为什么这会引发错误?

更新

它变成返回一个空的Mergedjson文件。我有有效的json格式

1 个答案:

答案 0 :(得分:1)

错误消息json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)表示您的JSON文件格式错误,甚至为空。请仔细检查文件是否为有效的JSON。

此外,您的filename参数也没有必要成为可变长度参数列表:

def merge_JsonFiles(*filename):

删除*运算符,以便实际上可以根据filename列表读取JSON文件。

def merge_JsonFiles(filename):