将 json 推文转换为 csv 时未定义 Python 名称



*朋友们好! 我想将我使用 tweepy 获得的原始 json 推文转换为 csv,并且只有两个字段,"创建位置"和"文本"转换为 ASCII 我遇到错误,即未定义名称错误"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]

当它抛出错误时,它会跳过分配给变量,因为data_json可能不是有效的 json。

考虑一下:

try:
n = int('a')
except ValueError:
pass

n会是什么?它不能分配给所有内容,因为引发的异常会使其跳过分配。

因此,您可以为其指定默认值:

try:
data_json = open('nawaz.json', mode='r').read()
data_python = json.loads(data_json)
except Exception:
data_python = []  # Some default value

或者,您可以不捕获异常并让它失败。

最新更新