簡體   English   中英

逗號分隔的csv文件中的python dict

[英]python dict in comma separated csv file

Python dict的格式如下:

'{"a":1, "b":2, "c":3}'

注意,它使用逗號分隔不同的key:value對。

問題是我有一個CSV文件,該文件也是用逗號分隔的各列:

'
  "id",   "gender",   "age",    "name"
 "001",     "male",    "14",    "{"first":"Mike", "last":"Green"}"
 "002",   "female",    "15",    "{"first":"Kate", "last":"Spear"}"
'

當我做
pandas.read_csv('csvfile.csv', sep = ',', names=["id", "gender", "age", "name"])

我有:

'
  "id",   "gender",   "age",    "name"
 "001",     "male",    "14",    "{"first":"Mike"
 "002",   "female",    "15",    "{"first":"Kate"
'

我猜的原因是csv閱讀器將dict中的逗號作為csv文件中的分隔符。 由於我僅指定了4個列,分別為“ id”,“ gender”,“ age”,“ name””,因此它忽略了姓氏。

有什么想法或可能的解決方案嗎? 謝謝!

您可以更改read_csv使用的定界符。 如果可以更改csv文件以使用分號分隔列,則可以使用read_csv(file.csv, sep=';'...)

或者,您可以修復來自

"001",     "male",    "14",    "{"first":"Mike", "last":"Green"}"

"001",     "male",    "14",    "{'first':'Mike', 'last':'Green'}"

當然,這兩種方法都意味着編輯csv文件。

第二個聽起來更好。 正則表達式(\\{[^"]*)(")([^}]*\\})可用於匹配括號內的引號。 (未試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM