在python中使用函数返回数据写入json文件
我需要将函数getvalues returned dictionary添加到“data.update”中。在python中使用函数返回数据写入json文件,python,json,python-3.x,Python,Json,Python 3.x,我需要将函数getvalues returned dictionary添加到“data.update”中。 我可以添加为单独的json。但无法将其添加到字段键中。请检查输出和所需输出 这是我写的代码: import json import csv import glob import os csvfile = open('file.csv', 'r') name = (os.path.splitext('file.csv')[0]) exampleReader = csv.reader(
我可以添加为单独的json。但无法将其添加到字段键中。请检查输出和所需输出 这是我写的代码:
import json
import csv
import glob
import os
csvfile = open('file.csv', 'r')
name = (os.path.splitext('file.csv')[0])
exampleReader = csv.reader(csvfile)
exampleData = list(exampleReader)
def getvalues():
for row in exampleData[:1]:
lis = {}
for r in row:
lis.update({r:r})
return lis
data = {}
data.update({
"pattern": name+'.csv',
"source_args": {
"encoding": "UTF-16"
},
"parser_args": {
"type": "csv",
"delimiter": ","
},
"outputs": [
{
"name": name,
"fields": {
}
}
]
})
result =json.dumps(data)
result1 =json.dumps(getvalues())
file = open("data.json","w")
file.write(result)
file.write(result1)
以下是实际输出和期望输出:
#Output : {"pattern": "file.csv",
"source_args":
{
"encoding": "UTF-16"
},
"parser_args": {
"type": "csv",
"delimiter": ","
}, "outputs":
[
{
"name": "file",
"fields": {}
}
]}
{
"facility_id": "facility_id",
"facility_type": "facility_type",
"facility_name": "facility_name",
"facility_branch": "facility_branch",
}
#Desired Output : {"pattern": "file.csv",
"source_args":
{
"encoding": "UTF-16"
},
"parser_args": {
"type": "csv",
"delimiter": ","
}, "outputs":
[
{
"name": "file",
"fields": {
"facility_id": "facility_id",
"facility_type": "facility_type",
"facility_name": "facility_name",
"facility_branch": "facility_branch",
}
}
]}
请让我知道如何才能做到这一点
更新:错误如果我用下面的方法直接添加函数字段{getvalues()}。我得到以下错误
回溯(最近一次呼叫最后一次):
文件“chej.py”,第50行,在
getvalues()
TypeError:无法损坏的类型:“dict”
您可以尝试以下方法:
"outputs": [
{
"name": name,
"fields": getvalues()
}
]问题在于
字段
?是的,我需要从使用getvalues()函数获取的数据中添加字段值(字段{}之间的设施id、设施类型等),然后您可以在那里调用函数并添加列表,对吗?像这样:“fields”:{getvalues()}
我得到以下错误。回溯(最近一次调用last):文件“chej.py”,第50行,在getvalues()TypeError:Unhabable type:“dict”你能回溯到有问题的完整错误吗?还要检查该函数中返回的缩进,它应该位于循环之外。
"outputs": [
{
"name": name,
"fields": getvalues()
}