将json推文转换为csv

时间:2017-08-26 10:17:42

标签: python json twitter nameerror

*朋友你好! 我想将我使用tweepy的原始json推文转换为csv和两个字段,“创建于”和“文本”转换为ASCII 我有错误,NameError“data_python”没有定义。 我很迷惑。 提前谢谢

这是我的代码

import json
import csv
try:
    data_json = open('nawaz.json', mode='r').read()
    data_python = json.loads(data_json) // here....
except Exception as e:
    print(str(e))

csv_out = open('tweets_out_ASCII.csv', mode='w')
writer = csv.writer(csv_out)

fields = ['created_at', 'text']
writer.writerow(fields)

for line in data_python:   // here it gives error
    writer.writerow([line.get('created_at'),   line.get('text').encode('unicode_escape'))]

csv_out.close()

这是我收到的错误

Traceback (most recent call last):
  File "json_to_csv.py", line 25, in <module>
    for line in data_python:
NameError: name 'data_python' is not defined

这是我的json示例

[![json example[![\]\[1\]][1]][1]

1 个答案:

答案 0 :(得分:2)

当它抛出错误时,它跳过分配给变量,因为try: n = int('a') except ValueError: pass 可能无效json。

考虑一下:

n

try: data_json = open('nawaz.json', mode='r').read() data_python = json.loads(data_json) except Exception: data_python = [] # Some default value 会是什么?它不能被分配给所有内容,因为引发的异常使它跳过赋值。

所以,你可以给它一个默认值:

{{1}}

或者你可以不抓住异常并让它失败。