Python 2.7 - csv.Error:预期的序列

时间:2018-03-02 19:13:37

标签: json python-2.7 csv

我正在使用Pythonboto3对AWS进行API调用。响应在JSON中返回,因此我将JSON响应写入文件。然后,我需要打开JSON文件并将其转换为csv文件。当我运行我的代码时,我收到上述错误。下面是我的代码,示例JSON和回溯。

代码:

def ResponseConvert():
    dynamo = boto3.client('dynamodb',
        region_name='xxxxxx',
        aws_access_key_id='xxxxxxxxxxxxxxxxxxxxxxx',
        aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxxxx')

    response = dynamo.scan(
    TableName='XXXXXXXXX'
    )
    with open('vuln_data.json', 'w') as outfile:
        json.dump(response, outfile, indent=4)

    f = open('vuln_data.json')
    data = json.load(f)
    f.close()

    writer = csv.writer(open('vuln_data.csv', 'wb+'))

    writer.writerow(data.iterkeys())
    for row in data:
        writer.writerow(row.itervalues())

ResponseConvert()

JSON:

{
"Count": 55,
"Items": [
    {
        "CVSS_SCORE": {
            "S": "3.5"
        },
        "AMI_ID": {
            "S": "ami-xxxxxxx"
        },
        "OS": {
            "S": "Ubuntu / Tiny Core Linux / Linux 2.6.x"
        },
        "PATCHES": {
            "S": "xxxxxxx"
        }
    },
    {
        "CVSS_SCORE": {
            "S": "3.5"
        },
        "AMI_ID": {
            "S": "ami-xxxxxxxx"
        },
        "OS": {
            "S": "CentOS Linux 7.3.1611"
        },
        "PATCHES": {
            "S": "xxxxxxx"
        }
      }
   ]
}

回溯:

Traceback (most recent call last):
  File "response_convert.py", line 20, in <module>
    ResponseConvert()
  File "response_vonvert.py", line 16, in ResponseConvert
    writer.writerow(data.iterkeys())
_csv.Error: sequence expected

0 个答案:

没有答案
相关问题