在python中使用函数返回数据写入json文件

在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(

我需要将函数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(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()
}