title: Conversion from nested json to csv with pandas
body: <p>I am trying to convert a nested json into a csv file, but I am struggling with the logic needed for the structure of my file: it's a json with 2 objects and I would like to convert into csv only one of them, which is a list with nesting.</p>
  
  <p>I've found very helpful "flattening" json info in <a href="https://towardsdatascience.com/flattening-json-objects-in-python-f5343c794b10" rel="nofollow noreferrer">this blog post</a>. I have been basically adapting it to my problem, but it is still not working for me.</p>
  
  <p>My json file looks like this:</p>
  
  <pre><code>{
    "tickets":[
      {
        "Name": "Liam",
        "Location": {
          "City": "Los Angeles",
          "State": "CA"
        },
        "hobbies": [
          "Piano",
          "Sports"
        ],
        "year" : 1985,
        "teamId" : "ATL",
        "playerId" : "barkele01",
        "salary" : 870000
      },
      {
        "Name": "John",
        "Location": {
          "City": "Los Angeles",
          "State": "CA"
        },
        "hobbies": [
          "Music",
          "Running"
        ],
        "year" : 1985,
        "teamId" : "ATL",
        "playerId" : "bedrost01",
        "salary" : 550000
      }
    ],
    "count": 2
  }
  
  </code></pre>
  
  <p>my code, so far, looks like this:</p>
  
  <pre class="lang-py prettyprint-override"><code>import json
  from pandas.io.json import json_normalize
  import argparse
  
  
  def flatten_json(y):
      out = {}
  
      def flatten(x, name=''):
          if type(x) is dict:
              for a in x:
                  flatten(x[a], name + a + '_')
          elif type(x) is list:
              i = 0
              for a in x:
                  flatten(a, name + str(i) + '_')
                  i += 1
          else:
              out[name[:-1]] = x
      flatten(y)
      return out
  
  
  if __name__ == '__main__':
      parser = argparse.ArgumentParser(description='Converting json files into csv for Tableau processing')
      parser.add_argument(
          "-j", "--json", dest="json_file", help="PATH/TO/json file to convert", metavar="FILE", required=True)
  
      args = parser.parse_args()
  
      with open(args.json_file, "r") as inputFile:  # open json file
          json_data = json.loads(inputFile.read())  # load json content
      flat_json = flatten_json(json_data)
      # normalizing flat json
      final_data = json_normalize(flat_json)
  
      with open(args.json_file.replace(".json", ".csv"), "w") as outputFile:  # open csv file
  
          # saving DataFrame to csv
          final_data.to_csv(outputFile, encoding='utf8', index=False)
  
  </code></pre>
  
  <p>What I would like to obtain is 1 line per ticket in the csv, with headings:</p>
  
  <p><code>Name,Location_City,Location_State,Hobbies_0,Hobbies_1,Year,TeamId,PlayerId,Salary</code>.</p>
  
  <p>I would really appreciate anything that can do the click! 
  Thank you!</p>