【问题标题】:convert the following json to csv using python使用python将以下json转换为csv
【发布时间】:2015-10-29 13:51:57
【问题描述】:
{"a":"1","b":"1","c":"1"}
{"a":"2","b":"2","c":"2"}
{"a":"3","b":"3","c":"3"}
{"a":"4","b":"4","c":"4"}

我尝试了以下代码,但它给出了错误:-

from nltk.twitter import Twitter
from nltk.twitter.util import json2csv

with open('C:/Users/Archit/Desktop/raw_tweets.json', 'r') as infile:
# Variable for building our JSON block
json_block = []

for line in infile:

    # Add the line to our JSON block
    json_block.append(line)

    # Check whether we closed our JSON block
    if line.startswith('{'):

        # Do something with the JSON dictionary
        json2csv(json_block, 'tweets.csv', ['id','text','created_at','in_reply_to_user_id','in_reply_to_screen_name','in_reply_to_status_id','user.id','user.screen_name','user.name','user.location','user.friends_count','user.followers_count','source'])

        # Start a new block
        json_block = []

错误:

文件“C:\Python34\lib\json\decoder.py”,第 361 行,在 raw_decode raise ValueError(errmsg("Expecting value", s, err.value)) from None ValueError:期望值:第 1 行第 1 列(字符 0)

【问题讨论】:

  • 你从哪里得到 json2csv 函数?
  • 抱歉没明白你说的意思?
  • 对不起,我会更明确一点。您正在使用 json2csv 函数,但它没有在任何地方定义。您是从某个地方导入它吗?当我运行你的代码时,我得到NameError: name 'json2csv' is not defined
  • 是的...从 nltk.twitter.util 导入 json2csv
  • 这是相关信息,应该包含在您的问题中。

标签: python json csv


【解决方案1】:
import csv, json

data = []

with open('C:\Users\Shahriar\Desktop\T.txt') as data_file:    
    for line in data_file:
        data.append(json.loads(line))


keys = data[0].keys()

with open('data.csv', 'wb') as csvF:
    csvWriter = csv.DictWriter(csvF, fieldnames=keys)
    csvWriter.writeheader()
    for d in data:
        csvWriter.writerow(d)

输出:

a,c,b
1,1,1
2,2,2
3,3,3
4,4,4

【讨论】:

    【解决方案2】:

    这太晚了,但我今天也偶然发现了一些错误。我认为您实际上必须从 nltk.twitter.common 而不是 util 导入。希望这对偶然发现此线程的其他人有所帮助

    【讨论】:

      【解决方案3】:
      # Read json 
      filename = 'C:/Users/Archit/Desktop/raw_tweets.json'
      lines = [line.replace("{", "").replace("}", "").replace(":", ",") for line in open(filename)]
      
      # Write csv
      with open('out.csv', 'w') as csv_file:
         for line in lines:
            csv_file.write("%s\n" % line)
      

      【讨论】:

      • raceback(最近一次调用最后):文件“C:\Users\Archit\Desktop\csv_conv.py”,第 35 行,在 csv_file.write("%s\n" %行)io.UnsupportedOperation:不可写
      • "a","1","b","1","c","1" 这是你的输出 csv 吗?
      • @ArchitGarg 谢谢,它缺少打开模式
      • @AerofoilKite 是的。 OP 没有指定输出格式。因此,如果元素有逗号,如“0”、“0,5”、“1”...
      猜你喜欢
      • 1970-01-01
      • 2018-01-04
      • 2019-02-23
      • 2021-09-01
      • 2021-12-03
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多