python - 在 Python 中将 JSON 数据从一个文件附加到另一个文件

标签 python json

考虑一下这段代码,它的失败是可以理解的:

def testDataTransform():
    source = 'data/threads/testFile2.json' 
    newFile = 'data/threads/testFile1.json'

    jX = returnJson(source)
    jY = returnJson(newFile)

    for dataL1 in jX:
        #print dataL1['city']
        for dataL2 in jY:
            if dataL1['city'] == dataL2['city']:
                dataL2.append(dataL1['population']) 

    print dataL2


# end testDataTransform

def returnJson(source):
    #Grab destination file json
    try:
       with open(source) as jsonFile: # Open and verify file is there
        # load JSON object into memory
        j = json.load(jsonFile)

        return j
    except Exception, e:
        print e
        raise
# end returnJson

testDataTransform()

生成的错误是:AttributeError: 'dict' object has no attribute 'append', 我现在明白这是由于尝试在文件 steam 上使用附加,从而错误地附加了我的 JSON。问题是我该如何正确地做到这一点?我想添加人口数据,该数据位于source 文件中。

testFiles 中的 JSON 结构如下所示:

[

    {
        "city": "New York",
        "lat": 20.1234,
        "long": 32.09876
    },
    {
        "city": "London",
        "lat": 21.1234,
        "long": 37.09876
    },
    {
        "city": "New Jersey",
        "lat": 10.1234,
        "long": 30.09876
    }

]

一个有“population”节点,另一个则没有。我想将人口数据从一个文件复制到另一个文件。这是怎么做到的?我想知道将文件流转换为数组是否有帮助,但我该怎么做呢?

谢谢。

最佳答案

错误消息准确地告诉您出了什么问题。就在这一行

dataL2.append(dataL1['population']) 

dataL2是一个dict(),而dict()没有名为append的方法

你想要的是

dataL2["population"] = dataL1['population']

基本上,对该文件的 json.load() 调用会返回 dicts() 列表。 JSON 数组映射到 Python 列表,JSON 对象映射到 Python 字典。要向字典添加新键,只需为其设置一个值即可。

关于python - 在 Python 中将 JSON 数据从一个文件附加到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431084/

相关文章:

python - CsvItemExporter 子类中的 Scrapy 1.0+ 正确设置访问?

python - 如何检查图像的 channel 顺序?

python - Python 模块/包系统对大型项目的可扩展性

Python OpenAI API 类型错误

ios LINESTRING 解析

java - 为什么构造函数用@JsonCreator注解时,它的参数必须用@JsonProperty注解?

javascript - 在 Javascript 中每 n 秒读取一次 JSON

javascript - 如何使用d3制作实时多折线图,其中数据来自json格式的api

python - 如何向类 View 添加逻辑

jquery - 将 jQuery 数组发布到 Django