Python将csv文件转换为Json问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python将csv文件转换为Json问题相关的知识,希望对你有一定的参考价值。

我不熟悉python程序,有人可以帮忙吗?非常感谢!

def ConvertInputFileJsonStr(InputCsvPath):
    #### Detail Data ####
    fo = open(InputCsvPath, "r")
    ColumnValuesCSVColumns = (
    'externalDataRef', 'language','mailingListLibraryId','surveyID')
    reader = csv.DictReader(fo, ColumnValuesCSVColumns)
    ls = []
    for row in reader:
        ls.append(row)
    groups = []
    uniquekeys = []
    for k, g in groupby(ls, lambda r: (r['externalDataRef'],r['language'], r['surveyID'])):
        groups.append(
            "externalDataRef": k[0],
            "language": k[1],
            "surveyID": k[2],
            "qualtricsDetails": [k: v for k, v in d.items() if k not in ['externalDataRef','language','surveyID'] for d in list(g)]
        )
        uniquekeys.append(k)
    return groups
    fo.close()

它将返回

[
  
    "externalDataRef": "535985",
    "language": "EN",
    "qualtricsDetails": [
      "mailingListLibraryId": "9011111111111"
    ],
    "surveyID": "123456789"
  
]

但我希望将其转换为以下示例。我该怎么办?

[
  
    "externalDataRef": "535985",
    "language": "EN",
    "qualtricsDetails": 
      "mailingListLibraryId": "9011111111111"
    ,
    "surveyID": "123456789"
  
]
答案

您需要获取列表的第一项。您可以通过它来完成此操作,但是对于空结果,它会显示list index out of range错误。

"qualtricsDetails": [k: v for k, v in d.items() if k not in ['externalDataRef','language','surveyID'] for d in list(g)][0]

以上是关于Python将csv文件转换为Json问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 将 CSV 文件数据转换为 JSON 格式

Python将csv文件转换为Json问题

使用 python 将 JSON 转换为 CSV

在 Python 中将嵌套的 JSON 转换为 CSV 文件

将 CSV 数据转换为嵌套 JSON

Python3 - 使用熊猫将 csv 转换为 json