提问人:Andres Pachano 提问时间:6/16/2023 最后编辑:Andres Pachano 更新时间:6/19/2023 访问量:300
为什么在尝试将 JSON 数据从一个文件解析到另一个文件时,我收到 TypeError:write() 参数必须是 str,而不是 None?
Why am I getting TypeError: write() argument must be str, not None when trying to parse JSON data from a file to another?
问:
我在python中有这段代码
keys = input('Enter the keys you want to extract separated by commas: ').split(',')
def extract_key_value(key):
with open(output, "w") as f:
with open(locationJSON, "r") as fi:
data = json.loads(fi.read())
final_key = json.dumps(key)
value = data.get(str(final_key))
f.write(value)
我正在尝试从大型 JSON 文件中提取一些特定的键和值,以便稍后将这些值转换为 CSV 文件。
请帮忙
TYSM公司
我尝试了不同的方法,我什至向 chatGPT 和 Bard 寻求指导,但我无法提取 JSON 格式的键和值,也无法提取它们。
我想要这样的输出JSON文件
[
{
"key":"value",
},
{
"key":"value"
},
...
]
我想实现的是从loacationJSON文件中获取一对键和值,并将它们作为JSON写入输出文件。然后,我会将它们转换为CSV文件以进行分析。我不得不提的是,locationJSON 文件包含对象内部的对象,并且我还需要从那里提取一些值。
我尝试了调试,看看我搞砸了哪里。找到了它,但仍然得到同样的错误。我阅读了 json 库文档。但找不到解决方案。
另外,我一直在和一个同样编码的朋友同步,但我们俩都非常迷茫,以至于我们谁也找不到解决方案。
答:
0赞
yedpodtrzitko
6/16/2023
#1
错误消息是不言自明的 - 变量的值是 。您可以通过添加到代码中来检查这一点。value
None
print(value)
该错误很可能是由以下行引起的:
final_key = json.dumps(key)
因此,无论您放在那里什么,都会序列化为 JSON:
In [1]: json.dumps('foo')
Out[1]: '"foo"'
所以我认为你想做的是这样的:
value = data.get(str(key))
我的建议 - 在此过程中添加很多内容,然后您将能够确定哪里出了问题。print()
不相关的建议 - 当您从文件加载 json 时,如果将整个内容读取到字符串中,然后通过以下方式加载字符串,则可以使用:json.load(fi)
json.loads()
with open(locationJSON, "r") as fi:
data = json.load(fi)
评论
0赞
Andres Pachano
6/17/2023
我试图这样做,它发送这个' 文件“path/to/file”,第 18 行,在 extract_key_value f.write(value) TypeError:write() 参数必须是 str,而不是 None'
评论