我試圖將.json文件轉換爲.csv,以便我可以在R中執行分析。我按照others建議的步驟操作,但仍遇到問題(可能由於json文件的大尺寸)。首先,我從網上拉URL:將大型JSON轉換爲CSV - Python
import urllib
#first open html as .json
response = urllib.request.urlopen("http://trends.vera.org/data/county/1003/")
input = response.read()
print(input)
這個函數下面我從鏈接問題得到平坦的json文件。
#function to flatten .json file
def flattenjson(b, delim):
val = {}
for i in b.keys():
if isinstance(b[i], dict):
get = flattenjson(b[i], delim)
for j in get.keys():
val[ i + delim + j ] = get[j]
else:
val[i] = b[i]
return val
下面的代碼列出了一個列表併爲csv生成列名。 這是哪裏出問題了。有誰知道如何解決這個問題?
#find column names
input = map(lambda x: flattenjson(x), input)
columns = map(lambda x: x.keys(), input)
columns = reduce(lambda x,y: x+y, columns)
columns = list(set(columns))
print(columns)
最後,我將json數據寫入.csv文件。
#write to .csv file
with open(fname, 'wb') as out_file:
csv_w = csv.writer(out_file)
csv_w.writerow(columns)
for i_r in input:
csv_w.writerow(map(lambda x: i_r.get(x, ""), columns))
在此先感謝您的幫助。
如果您收到錯誤,請將其發佈在您的問題中。 – sisanared