【问题标题】:Trying to append a list of values to existing json file as a new column尝试将值列表作为新列附加到现有 json 文件
【发布时间】:2020-09-27 18:35:08
【问题描述】:

我有一个返回值列表的函数。我想将此列表作为我的数据集中的最后一列,即 json 文件。目前我有一个来自 github 的数据集的 url。如何使用为我提供值列表的函数将值附加为最后一列(每行一个值)?

目前我的json文件保存为:

import pandas as pd
import json

url = 'githublink'
df = pd.read_json(url)

我的函数格式为:

def func():
    newlist = []
    for i in range(1,10):
        newlist.append(i)
    return newlist 

output = func() #saved output of the function 

【问题讨论】:

标签: python json append


【解决方案1】:
from collections import OrderedDict
import json

obj = json.loads('json_as_str', object_pairs_hook=OrderedDict)
last_item = obj.popitem()

your_lov = yourLovFunction()
obj[last_item[0]] = last_item[1] + your_lov

json.dumps(obj)

您会得到一个 OrderedDict,因此如果您将 JSON-String 转换为 Python-Object,则键是有序的。你弹出这个字典的最后一项并得到一个元组,其中第一个元素是键,第二个元素是值。

因此,您再次分配相同的键并在两个列表上执行 + 运算符。

所以如果你有一个类似的对象

{ "a": 123, "b" : [2,3,4]}

取出 "b" 并将你的 lov 与 [2,3,4] 组合并再次分配 "b",这样就可以了。

【讨论】:

  • 我是否将代码中的“json_as_str”替换为“df”?我正在努力理解我如何将读取 url 到我的 github 数据的部分合并到这个方法中......
  • 您应该在此示例中使用请求import requests r = requests.get('your_url') json_str = str(r.content) 获取 JSON 的内容,我认为这将是最简单的。
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 2017-06-30
  • 2021-08-01
  • 1970-01-01
  • 2021-02-11
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多