如何将第一个信息解析为CSV?

时间:2019-07-31 14:29:24

标签: python json python-2.7 csv

我正在尝试解析100多个json文件,但是我不需要所有信息。 我只需要解析第一组“坐标”,CSV已经打印了URL和URL类型,但是我无法打印第一组坐标。

这是Json文件的一部分

{
  "type":"featureCollection",
  "features" : [
    {
      "type": "feature",
      "geometry": {
        "type": "multilinestring",
        "coordinates":[
          [
            [
              148.9395348,
              -21.3292286
            ],
               [
              148.93963,
              -21.33001
            ],
            [
              148.93969,
              -21.3303
            ]
          ]
        ]
      },
      "properties":{
       "url" :"www.thiswebpageisfake.com",
       "url_type":"fake"
      },
      "information":{
        "timestamp":"10/10/19"
      }
    }]
}

我正在使用python 2.7,我尝试为坐标创建数组,但是类型错误

import os
import csv
import json
import sys

reload(sys)

file_path = 'C:\\Users\\user\\Desktop\\Python\\json'
dirs = os.listdir(file_path)
file_out = 'C:\\Users\\user\\output.csv'
f = csv.writer(open(file_out, "wb+"))
f.writerow(
    ['url','url_type','lat','long'])

for file in dirs:
    json_dict = json.loads(open(os.path.join(file_path, file)).read())
    print file

for key in json_dict['features']:
    for key1 in key:
        description = key['properties']['description']
        if description is None:
            description = 'null'

        array = ()
        array = (key['geometry']['type']['coordinates'])

        f.writerow([file,                                       
                    key['properties']['url'],                    
                    key['properties']['url_type'],     
                    array[1]                                                               
                    ])
print 'completed'

1 个答案:

答案 0 :(得分:0)

首先,看起来您的第二个循环应该嵌套在第一个循环中,否则,除了最后一个循环外,您将对所有json文件不做任何事情,并且最终只能处理一个文件。

第二,您的数组应定义为array = (key['geometry']['coordinates']),因为'coordinates'中不包含'type'