在Python中将新条目添加到json文件

时间:2020-05-21 02:00:58

标签: python json discord.py

我有一个运行良好的json文件,我在不和谐状态下有一个bot命令,可以显示其中的随机条目。

我要编写的下一个命令是如何添加新条目,这样我就不需要通过Atom手动进行操作了。

import React, { useMemo, useState, useEffect } from "react";
import axios from "axios";
import Table from "./Table";
import "./App.css";

function App() {

  const [loadingData, setLoadingData] = useState(true);
  const columns = useMemo(() => [
    {
      Header: "State",
      accessor: "show.state",
    },
    {
      Header: "Positive Cases",
      accessor: "show.positive",
    },
    {
      Header: "Recovered Cases",
      accessor: "show.recovered",


    },
    {
      Header: "Deaths",
      accessor: "show.death",
    },
    {
      Header: "Total Tested",
      accessor: "show.total",
    }

  ]);

  const [data, setData] = useState([]);

  useEffect(() => {
    async function getData() {
      await axios
        (.get("https://covidtracking.com/api/v1/states/current.json")
        .then((response)) => {

          console.log(response.data);
          setData(response.data);
          setLoadingData(false);
        });
    }
    if (loadingData) {
      getData();
    }
  }, []);

  return (
    <div className="App">
      {loadingData ? (
      ) : (
        <Table columns={columns} data={data} />
      )}
    </div>
  );
}

export default App;

评论中的#行是我认为最多的地方。

https://covidtracking.com/api/v1/states/current.json

这是jsonfile的屏幕截图,它的外观。我想通过该功能为其添加更多“引号”

非常感谢

2 个答案:

答案 0 :(得分:0)

这些代码对我有效:

import json
with open('quotes.json','r') as f:
    quote = json.load(f)
print(quote)
quote['Quote'].append({
    'quote':"test"
})
with open('prefises.json', 'w') as f:
    json.dump(quote, f)

带有quotes.json:

{"Quote":[]}

和prefises.json:

{"Quote": [{"quote": "test"}]}

答案 1 :(得分:0)

我通过在JSON中使用列表而不是字典来解决问题。

async def addquote(self, ctx, *, message):
        with open('quotes.json','r') as f:
            quote = json.load(f)
        quote.append(message)
        with open('quotes.json', 'w') as f:
            json.dump(quote, f)
        await ctx.send('Quote added.')

quote.json已清除,内容仅为[] 然后写就可以了。