我正在使用 Python 和一些 json 数据。我正在循环访问我的数据(都是字典),当我将循环值打印到控制台时,我每行得到 1 个字典。
但是,当我使用 json.dumps() 执行同一行代码将对象转换为能够输出的字符串时,我会在字典中得到多行,而不是在字典外得到新行。
循环时如何在每个字典值后添加新行?
代码示例:
def test(values, filename):
with open(filename, 'w') as f:
for value in values:
print(json.dumps(value, sort_keys=True)) # gives me each dictionary in a new line
f.write(json.dumps(value, sort_keys=True, indent=0) #gives me a new line for each key/value pair instead of after each dictionary.
Run Code Online (Sandbox Code Playgroud)
控制台输出:
{"first_name": "John", "last_name": "Smith", "food": "corn"}
{"first_name": "Jane", "last_name": "Doe", "food": "soup"}
Run Code Online (Sandbox Code Playgroud)
我的输出文件中的输出:
{"first_name": "John", "last_name": "Smith", "food": "corn"}{"first_name": "Jane", "last_name": "Doe", "food": "soup"}
Run Code Online (Sandbox Code Playgroud)
我缺少哪些代码来为每个字典值获取一个新行,以便我的输出文件看起来与控制台相同?
我有一个简单的问题,因为我对功能组件中的 JSX 有点困惑。
我正在做一个小项目来探索 useState() 更复杂的用法,在这个挑战的最后部分,您必须将您键入的联系人呈现到输入表单中。
这是我的代码:
import React, { useState } from "react";
function App() {
const [inputData, setInputData] = useState({ firstName: "", lastName: "" });
const [contactsData, setContactsData] = useState([]);
function handleChange(event) {
const { name, value } = event.target;
setInputData((prevData) => {
return {
...prevData,
// will copy over all properties from the previous input data and then replace whichever one we are currently working on with the updated value
[name]: value,
};
});
}
function handleSubmit(event) …Run Code Online (Sandbox Code Playgroud) javascript functional-programming reactjs react-functional-component